In Oracle müssen Sie zuerst die Prozedur in einer Paketspezifikation deklarieren und dann die vollständige Prozedur im Paketkörper erstellen. Denn wenn Sie versuchen, eine Prozedur nur im Paketkörper ohne ihre Deklaration in der Paketspezifikation zu erstellen, erhalten Sie den Fehler PLS-00302 Komponente muss deklariert werden und ORA-06550 ungültiger PL/SQL-Block. Also unten gebe ich ein Beispiel dafür, wie man eine Prozedur innerhalb eines Pakets in Oracle erstellt.
In diesem Beispiel erstellen wir eine Prozedur update_comm, um die Provision in der EMP-Tabelle zu aktualisieren. Dieses Verfahren übernimmt den Parameter für den Provisionsprozentsatz.
Eine Prozedur in einem Paket in einem Oracle-Beispiel erstellen
Deklarieren Sie das Verfahren in der Paketspezifikation
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Erstellen Sie die vollständige Prozedur im Paketkörper
CREATE OR REPLACE PACKAGE BODY emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE) IS BEGIN UPDATE emp SET comm = sal * NVL (i_comm, 0) / 100; COMMIT; END update_comm; END emp_pkg;
Nun können Sie diesen Vorgang wie folgt ausführen:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;