二十三、oracle pl/sql分類三 包

來源:互聯網
上載者:User

標籤:

 

包用於在邏輯上組合過程和函數,它由包規範和包體兩部分組成。
1)、我們可以使用create package命令來建立包,如:
i、建立一個包sp_package
ii、聲明該包有一個過程update_sal
iii、聲明該包有一個函數annual_income

--聲明該包有一個預存程序和一個函數
create package sp_package is
procedure update_sal(name varchar2, newsal number);
function annual_income(name varchar2) return number;
end;

  

2)、建立包體可以使用create package body命令
給包sp_package實現包體

CREATE OR REPLACE PACKAGE BODY SP_PACKAGE IS
--預存程序
PROCEDURE UPDATE_SAL(NAME VARCHAR2, NEWSAL NUMBER) IS
BEGIN
UPDATE EMP SET SAL = NEWSAL WHERE ENAME = NAME;
COMMIT;
END;

--函數
FUNCTION ANNUAL_INCOME(NAME VARCHAR2) RETURN NUMBER IS
ANNUAL_SALARY NUMBER;
BEGIN
SELECT SAL * 12 + NVL(COMM, 0) INTO ANNUAL_SALARY FROM EMP WHERE ENAME = NAME;
RETURN ANNUAL_SALARY;
END;
END;
/

    

3)、如何調用包的過程或是函數
當調用包的過程或是函數時,在過程和函數前需要帶有包名,如果要訪問其它方案的包,還需要在包名前加方案名。如:

--調用預存程序
SQL> exec sp_package.update_sal(‘SCOTT‘, 8888);
--調用函數
var income NUMBER;
CALL sp_package.ANNUAL_INCOME(‘SCOTT‘) INTO:income;
print income;

特別說明:包是pl/sql 中非常重要的部分,我們在使用過程分頁時,將會再次體驗它的威力呵呵。

 

觸發器
觸發器是指隱含的執行的預存程序。當定義觸發器時,必須要指定觸發的事件和觸發的操作,常用的觸發事件insert,update,delete 語句,而觸發操作實際就是一個pl/sql 塊。可以使用create trigger 來建立觸發器。
特別說明:我們會在後面詳細為大家介紹觸發器的使用,因為觸發器是非常有用的,可維護資料庫的安全和一致性。

 分類: oracle初級系列教程標籤: oracle 函數, oracle procedure, oracle 預存程序, oracle function, oracle package, oracle 包

二十三、oracle pl/sql分類三 包

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.