包用於邏輯組合相關的過程和函式,它由包規範和包體兩部分組成,包規範用於定義公用的常量
變數,過程和函式,在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...