PL SQL 包頭和包體

2021-06-21 21:51:50 字數 1262 閱讀 8385

包用於邏輯組合相關的過程和函式,它由包規範和包體兩部分組成,包規範用於定義公用的常量

變數,過程和函式,在sql*plus中建立包規範可以使用create package命令。

例項如下:

create or replace package emp_pkg is

procedure update_sal(name varchar2,newsal number);

function annual_incom(name varchar2) return number;

end;

包頭值包含了過程和函式的說明,而沒有過程和函式的實現**。包體用於實現包規範中的過程和函式,

在sql*plus中建立包體可以使用create package body命令。例項如下:

create or replace package body emp_pkg is

procedure update_sal(name varchar2,newsal number)

isbegin

update emp set sal=newsal

where lower(ename)=lower(name);

end;

function annual_incom(name varchar2) return number

isannual_salary number(7,2);

begin

select sal*12 + nvl(comm,0) into annual_salary

from emp where lower(ename)=lower(name);

return annual_salary;

end;

end;

當呼叫包的過程和函式時,在過程和函式名之前必須要帶有包名作為字首(包名.子程式名),

而如果要訪問其他方案的包,還必須要加方案名作為字首(方案名.包名.子程式名).

sql> set serveroutput on

sql> exec emp_pkg.update_sal('scott',1500);

pl/sql procedure successfully completed.

sql> select emp_pkg.annual_incom('scott') from dual;

emp_pkg.annual_incom('scott')

-----------------------------

18000

Oracle之包頭和包體的建立

2 查詢某個部門中的所有員工資訊 返回的是集合 包頭 create or replace package mypackage is type empcursor is ref cursor 這句話是自定義乙個變數型別為游標型別其實就是游標,不定義也可以.下面這句就是包頭裡有個儲存過程,定義乙個儲存過...

自定義協議封裝包頭 包體

底層通訊訊息類,定義訊息id 訊息體,和初始化 1 using system 23 4 底層通訊訊息 5 6 public class tsocketmessage idisposable 7 2223 public void dispose 24 2829 protected virtual vo...

pl sql程式設計 包

包 包用於在邏輯上組合過程和函式,它由包規範和包體兩部分組成。包規範是包的介面。它只是宣告可以從包外部引用的型別,變數,常量,異常,游標和子程式。也就是說,它包含有關包的內容的所有資訊,但不包括子程式的 所有放置在規範中的物件被稱為公共物件。任何不在包規範中但在包體中編碼的子程式稱為私有物件 使用c...