pl sql程式設計 包

2021-09-16 20:56:24 字數 1825 閱讀 3372

包:

包用於在邏輯上組合過程和函式,它由包規範和包體兩部分組成。

包規範是包的介面。它只是宣告可以從包外部引用的型別,變數,常量,異常,游標和子程式。也就是說,它包含有關包的內容的所有資訊,但不包括子程式的**。

所有放置在規範中的物件被稱為公共物件。任何不在包規範中但在包體中編碼的子程式稱為私有物件

使用create package 命令來建立包規範

例項:

create or replace package sp_package is 

--建立乙個名為sp_package的包

procedure sp_pro(sqdm varchar2,newmim number);

function sp_fun(spdm varchar2) return number;

--宣告該包中有乙個過程sp_pro和乙個函式 sp_fun

end;

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

包體具有包規範中宣告的各種方法**和其他私有宣告,這些宣告對包之外的**是隱藏的

使用create package body 命令建立包體

create or replace package body sp_package is

--sp_pro

procedure sp_pro(sqdm varchar2,newmim number) is

--如果要定義變數,常量等,可以在此定義;is與begin之間定義;

begin

--執行部分 根據使用者名稱修改密碼

update caozyxx set mim = newmim where caozydm = sqdm;

end;

--sp_fun

function sp_fun(spdm varchar2) return number is

nianx number(7,2);

begin

--執行部分

select mim*12 into nianx from caozyxx where caozydm = spdm;

return nianx;

exception

--例外部分

when no_data_found then

dbms_output.put_line('輸入錯誤');

return(0);

end;

end;

呼叫包:

當呼叫包的過程或是函式時,在過程和函式前需要帶有包名,如果要訪問其他方案的包,還需要在包名前加方案名。

呼叫包中的過程:

exec sp_package.sp_pro('0000',4500);

--call sp_package.sp_pro('0000',4500);

呼叫包中的函式:

--命令列

var bb number;

call sp_package.sp_fun('0000') into:bb;

--在pl/sql塊中呼叫:

declare

--定義變數用於接收返回值

b number;

begin

--執行,將返回的值給變數,並列印出來

b:=sp_package.sp_fun('0000');

dbms_output.put_line('年薪為'||b);

end;

PLSQL程式設計

create table emomy1 emon varchar2 100 time1 date drop table emomy1 select from emomy1 begin dbms output.put line hello,world end 定義變數 declare name con...

PL SQL程式設計

1.具有程式語言的特點,他能把一組sql語句放到乙個模組中,使去更具有模組的程式的特點 2.採用過程性語言控制程式的結構,也就是說,在pl sql中增強邏輯結構,如迴圈,判斷等程式結構 3.pl sql可以對程式中的錯誤進行自動處理,使程式能夠在遇到錯誤時不會中斷,及他的處理異常機制 4.具有更好的...

PL SQL 程式設計

pl sql 程式結構 declare 宣告部分 宣告變數 型別 游標以及布局的儲存過程及函式 begin 執行部分 過程及sql語句,程式的主要部分,是必須的 end eg 基表為course declare v cno varchar 20 001 begin select from cours...