I Oracle skal du først erklære proceduren i en pakkespecifikation og derefter oprette den fulde procedure i pakketeksten. Fordi hvis du vil forsøge at oprette procedure kun i pakkens krop uden dens erklæring i pakkespecifikationen, vil du få fejlen PLS-00302 komponent skal erklæres og ORA-06550 ugyldig PL/SQL blok. Så nedenfor giver jeg et eksempel på, hvordan man opretter en procedure inde i en pakke i Oracle.
I dette eksempel vil vi oprette en procedure update_comm for at opdatere provision i EMP-tabellen. Denne procedure tager parameteren for provisionsprocent.
Opret en procedure inde i en pakke i Oracle-eksempel
Erklære proceduren i pakkespecifikationen
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Opret hele proceduren i pakketeksten
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 kan du udføre denne procedure som følger:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;