Está en la página 1de 3

FUNCIONES Y PAQUETES

CREATE OR REPLACE PACKAGE mat IS


TYPE t_num IS TABLE OF NUMBER(3)
INDEX BY BINARY_INTEGER;
FUNCTION sumaarr(arr IN OUT t_num) RETURN NUMBER;
END; --Fin de la especificación
/
INDEX BY BYNARY_INTEGER  Indexado por números

En Oracle los arreglos se pueden iniciar en cualquier casilla (índice). Donde no hay elemento el
índice es null.

PL/SQL DEVELOPER  Me muestra las funciones y los paquetes gráficamente.

Sobrecarga de métodos, puedo tener subprogramas que se llaman igual, pero deben recibir
parámetros distintos.

RECOMENDACIÓN: Póngale nombres distintos a los SUBPROGRAMAS.

BUENA PRÁCTICA DE PROGRAMACIÓN: No declara variables públicas, todo se maneja en el


BODY con métodos GET y SET.

Subprogramas privados  No se pueden llamar, sólo se pueden utilizar desde el BODY.

Si quiere que sean públicos, declárelos en la especificación.

No crear todas las funciones de una vez, crearlas una por una. Es más útil para depurar errores.
COMANDO ÚTIL: show errors

Cuando inicio sesión todo NACE OTRA VEZ, las variables creadas en los paquetes toman su
valor declarado.

Aún así Oracle en su proceso de ejecución conserva el último valor ejecutado.

Trigger de LOG OFF

Si quiero alterar variables y mantenerlas luego del “exit”, guardar en la tabla

Trigger de LOG ON

Que lea la tabla con la variable y la actualice.

Tablas pequeñas de 10000 filas

Quiero devolver todo lo de una consulta.  Devuelvo un arreglo

Función
Cursor
Select *
-------

MÁS ÚTIL

Devolver contenidos de cursores (Ya llenos)  SYS_REFCURSOR

CURSOR DINÁMICO: Solamente en tiempo de ejecución el cursor sabe el nombre de la tabla


que le mando. Le puedo quitar las comillas simples, pero tendría que darle el nombre de la
tabla.

OPEN c FOR 'SELECT * FROM ' || nom_tabla; --Se llena

También podría gustarte