1. 程式人生 > >Oracle的sql開發之包技術實戰

Oracle的sql開發之包技術實戰

前言: 包(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;