Está en la página 1de 2

si una funcion se llama a si misma se llama recursividad.

difrenecia entre funcion y procedimiento


funcion devuelve un valor a traves del RETURN, sus argumentos deben de ser IN
y un procedimiento no devuelve valor, solo a traves de los parametros

procedimiento: sirve para automatizar una busqueda en la base de datos.

in: necesita que entre un valor


out: no necesita que entre un valor pero devuelve un valor
in out: necesita que entre un valor y va a devolver otro o el mismo

OR REPLACE: se recomienda poner porque reempleza a uno que ya existiese.


los argumentos no son obligatorios

variable local: solo tiene existencia dentro del procedimiento.


rownum: numero de filas a procesar

un select detras de un from est� bien porque es una tabla temporal que se almacena
en el tablespace temp.

detr�s del is va la declaraci�n de variables locales y entre BEGIN y el END va las


ordenes
detr�s del END es aconsejable poner el nombre del procedimiento.

para visualizar el resultado de algun variable se hace con la orden nms out

en los argumentos no se pone varchar2(10) sino varchar2 o number en vez de


number(3)

##############################################################
FUNCION
##############################################################
la sentencia RETURN siempre tiene que estar y es obligatorio
sus argumentos deben de ser todos IN
%TYPE --> indicar que el campo seleccionado es del mismo tipo que el que esta
indicando. se pone el nombre de la columna y luego %TYPE. Ejemplo: SalarioDNI
Empleados.Salario%TYPE

NO_DATA_FOUND THEN RETURN ____; Si no encuentra algo aborta y ante de abortar env�a
lo indicado detr�s del return

invocaci�n da una funcion x:= nombrefuncion(a,b,c); el resultado que devuelve la


funcion hay que almacenarlo si no el valor de la funcion se pierde. otra forma
v�lida: z:=f2(f1(a),n,m)
en los argumentos de la funcion no hace falta poner IN,OUT o IN OUT.

cuando un select into no encuentar ninguna fila o por el ocntrario podria querer
almacenar mas de una fila se crea un error en tiempo de ejecucion y aborta. antes
de que aborte si hay zona de execption el error se puede tratar. tambien ocurre
cuando hay mas de una fila que cumple la condici�n se produce este error y se trata
con TOO_MANY_ROWS.

#################################################################
EXECPCIONES
#################################################################

cuando se produce un error el programa pasa a la zona de excepciones si que


aparezca nada en la zona de error.
formato : WHEN tipo de exepcion EXEPTION;
hay dos tipos:
- predefinidas: integradas en oracle o sql y no hay que declararlas
hay 20 tipos.
others es parecido al else de los if
invalid_cursor

raise sirve para activar una exception, una vez activada pasa a la zona de
exception.

- definidas por el usuario: es una variable para controlar ciertos errores


que no es ni entera ni varchar ni ningun tipo sino exception.

#################################################################
OTHERS
#################################################################
el ultimo gestor de excepciones. es recomendable poner un other por si hubiese otra
cosa inesperada.

#################################################################
RAISE_APPLICATION_ERROR
#################################################################

sql%notfound se utiliza con el update, delete e insert. Si no actualiza es porque


no existe la fila que est� buscando.

También podría gustarte