In Oracle moet u eerst de procedure declareren in een pakketspecificatie en vervolgens de volledige procedure in de pakkettekst maken. Omdat als u probeert om alleen een procedure in de pakketbody te maken zonder de verklaring in pakketspecificatie, u de fout PLS-00302 component moet worden verklaard en ORA-06550 ongeldig PL/SQL-blok. Dus hieronder geef ik een voorbeeld van hoe je een procedure in een pakket in Oracle kunt maken.
In dit voorbeeld zullen we een procedure update_comm maken om de commissie in de EMP-tabel bij te werken. Deze procedure neemt de parameter voor commissiepercentage.
Een procedure maken binnen een pakket in Oracle-voorbeeld
Verklaar de procedure in pakketspecificatie
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Maak de volledige procedure in de inhoud van het pakket
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;
Nu kunt u deze procedure als volgt uitvoeren:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;