Crear funciones definidas por el usuario de PL/SQL en un paquete PL/SQL

Puede crear funciones definidas por el usuario PL/SQL en un paquete PL/SQL utilizando el asistente Nuevo paquete PL/SQL.

Procedimiento

Para crear una función definida por el usuario de PL/SQL desde un proyecto de desarrollo de datos:

  1. En el Explorador de proyectos de datos, pulse con el botón derecho del ratón en el esquema de la carpeta Paquetes PL/SQL y pulse Nuevo > Paquete PL/SQL. Se abrirá el asistente Paquete PL/SQL nuevo.
  2. Lleve a cabo los pasos que le indique el asistente.

    El asistente crea el paquete PL/SQL y lo añade a la carpeta Paquetes PL/SQL; la especificación del paquete PL/SQL se abre en el editor de rutinas.

  3. En la especificación, añada el nombre de función y las variables. Por ejemplo:
    CREATE OR REPLACE PACKAGE emp_admin
    IS
    
       ...
       FUNCTION SampleFunction RETURN integer;
       ...
    END emp_admin;
  4. Pulse en la pestaña Cuerpo y edite el cuerpo del paquete PL/SQL para añadir la función. Ejemplo:
    --
    --  Cuerpo del paquete 'emp_admin'.
    --
    CREATE OR REPLACE PACKAGE BODY emp_admin AS
       FUNCTION hire_emp (name VARCHAR2, job VARCHAR2,
          mgr NUMBER, hiredate DATE, sal NUMBER, comm NUMBER,
          deptno NUMBER) RETURN NUMBER IS
    END;
  5. Guarde el paquete.

Resultados

De forma predeterminada, la creación del paquete no lo registra en la base de datos. Para registrar el paquete en la base de datos, debe desplegarlo.

Se puede sobrecargar una función definida por el usuario de PL/SQL solamente si todas las rutinas del mismo nombre y tipo residen en el mismo paquete PL/SQL. En un paquete PL/SQL, un procedimiento o función puede ser sobrecargado por otro procedimiento o función del mismo tipo y nombre, pero con un número diferente de parámetros. Un procedimiento sobrecargado o función sobrecargada de un paquete PL/SQL muestra el número de sus parámetros entre paréntesis:
Function(1)
Function(2)

Una vez creado un paquete PL/SQL, puede desplegarlo y ejecutarlo.


Comentarios