Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erstellen Sie eine Prozedur in einem Paket in Oracle

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;