Oracle的sql開發之包技術實戰
阿新 • • 發佈:2018-12-09
前言: 包(package)的主要作用是用於邏輯組合相關的pl/sql型別,比如記錄型別或者集合型別,pl/sql遊標或者遊標宣告以及pl/sql子程式,還可以包含任何可以在塊的宣告區中定義的變數。一旦建立了一個包,包就會被儲存在Oracle資料庫中。可以將包放到共享池中,以便被多個應用程式共享和呼叫。一個pl/sql包包括包規範和包體兩部分。
一>一個簡單的包的包規範和包體小例子
create or replace package emp_pkg as -----定義集合型別 type emp_tab is table of emp%rowtype index by binary_integer; -----在包規範中定義一個記錄型別 type emprectyp is record(emp_no number,sal number); ----定義一個遊標申明 cursor desc_salary return emp; ----定義僱傭員工的過程 procedure hire_employee(p_empno number,p_ename varchar2,p_job varchar2,p_mgr number,p_sal number,p_comm number,p_deptno number); -----定義解僱員工的過程 procedure fire_employee(p_emp_id number); end emp_pkg; create or replace package body emp_pkg as -----定義遊標申明的遊標體 cursor desc_salary return emp is select * from emp order by sal desc; -----定義僱傭員工的具體實現 procedure hire_employee(p_empno number,p_ename varchar2,p_job varchar2,p_mgr number,p_sal number,p_comm number,p_deptno number) is begin insert into emp (empno) values('3360'); end; ----定義解僱員工的具體實現 procedure fire_employee(p_emp_id number) is begin ----從emp表中刪除員工資訊 delete from emp where empno=p_emp_id; end; end emp_pkg;