Sie können mit dem Assistenten Neues PL/SQL-Paket gespeicherte PL/SQL-Prozeduren in einem PL/SQL-Paket erstellen.
Vorbereitende Schritte
Stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:
Informationen zu diesem Vorgang
Geben Sie mit dem Assistenten Neues PL/SQL-Paket PL/SQL als Sprache für die gespeicherte Prozedur an und wählen Sie eine Schablone aus. Anschließend können Sie die Spezifikation und den Hauptteil des Pakets im Routineneditor bearbeiten.
Vorgehensweise
Gehen Sie wie folgt vor, um eine gespeicherte Prozedur in einem PL/SQL-Paket zu erstellen:
- Klicken Sie im Datenprojektexplorer mit der rechten Maustaste auf den Ordner PL/SQL-Pakete innerhalb eines Projekts und klicken Sie auf . Der Assistent Neues PL/SQL-Paket wird geöffnet.
- Führen Sie die Schritte des Assistenten aus.
Der Assistent erstellt das PL/SQL-Paket und fügt es dem Ordner PL/SQL-Pakete hinzu und die PL/SQL-Paketspezifikation wird im Routineneditor geöffnet.
- Fügen Sie in der Spezifikation den Namen und die Variablen der gespeicherten Prozedur hinzu. Beispiel:
CREATE OR REPLACE PACKAGE emp_admin
IS
...
PROCEDURE hire_emp (
p_empno NUMBER,
p_ename VARCHAR2,
p_job VARCHAR2,
p_sal NUMBER,
p_hiredate DATE DEFAULT sysdate,
p_comm NUMBER DEFAULT 0,
p_mgr NUMBER,
p_deptno NUMBER DEFAULT 10
);
...
END emp_admin;
- Klicken Sie auf die Registerkarte Hauptteil und bearbeiten Sie den Hauptteil des PL/SQL-Pakets. Fügen Sie dabei die gespeicherte Prozedur hinzu. Beispiel:
--
-- Package body for the 'emp_admin' package.
--
CREATE OR REPLACE PACKAGE BODY emp_admin
IS
--
...
-- Procedure that inserts a new employee record into the 'emp' table.
--
PROCEDURE hire_emp (
p_empno NUMBER,
p_ename VARCHAR2,
p_job VARCHAR2,
p_sal NUMBER,
p_hiredate DATE DEFAULT sysdate,
p_comm NUMBER DEFAULT 0,
p_mgr NUMBER,
p_deptno NUMBER DEFAULT 10
)
AS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
...
--
END;
- Speichern Sie das Paket.
Eine gespeicherte PL/SQL-Prozedur kann nur überladen werden, wenn alle Routinen mit demselben Namen und Typ im selben PL/SQL-Paket enthalten sind. In einem PL/SQL-Paket kann eine Prozedur oder Funktion von einer anderen Prozedur oder Funktion überladen werden, die denselben Typ und Namen jedoch eine andere Anzahl Parameter hat. Ein überladenes Paket oder eine überladene Funktion in einem PL/SQL-Paket zeigt die Anzahl Parameter in Klammern an:
Procedure02(1)
Procedure02(2)