I Oracle måste du först deklarera proceduren i en paketspecifikation och sedan skapa hela proceduren i paketets kropp. För om du försöker skapa en procedur endast i paketets kropp utan dess deklaration i paketspecifikationen kommer du att få felet PLS-00302 komponent måste deklareras och ORA-06550 ogiltigt PL/SQL-block. Så nedan ger jag ett exempel på hur man skapar en procedur i ett paket i Oracle.
I det här exemplet kommer vi att skapa en procedur update_comm för att uppdatera provision i EMP-tabellen. Denna procedur tar parametern för provisionsprocent.
Skapa en procedur i ett paket i Oracle-exempel
Deklarera förfarandet i paketspecifikationen
CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_comm (i_comm IN emp.comm%TYPE); END emp_pkg;
Skapa hela förfarandet i Package Body
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 utföra denna procedur enligt följande:
BEGIN /* Updating commission with 5% of salary */ emp_pkg.update_comm (5); END;