Un paquete es un objeto que agrupa tipos, elementos y subprogramas. Suelen tener dos partes: la especificación y el cuerpo, aunque algunas veces el cuerpo no es necesario.
En la parte de especificación declararemos la interfaz del paquete con nuestra aplicación y en el cuerpo es donde implementaremos esa interfaz.
Para crear un paquete usaremos la siguiente sintaxis:
CREATE [OR REPLACE] PACKAGE nombre AS
[declaraciones públicas y especificación de subprogramas]
END [nombre];
CREATE [OR REPLACE] PACKAGE BODY nombre AS
[declaraciones privadas y cuerpo de los subprogramas especificados]
[BEGIN
sentencias de inicialización]
END [nombre];
La parte de inicialización sólo se ejecuta una vez, la primera vez que el paquete es referenciado.
Para referenciar las partes visibles de un paquete, lo haremos por medio de la notación del punto.
BEGIN
...
call_center.borra_agente( 10 );
...
END;