溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

oracle中package包頭和package body包體有什么用

發(fā)布時(shí)間:2021-11-25 09:35:29 來源:億速云 閱讀:390 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要為大家展示了“oracle中package包頭和package body包體有什么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“oracle中package包頭和package body包體有什么用”這篇文章吧。

程序包
1作用是為了實(shí)程序模塊化
2程序包里面可以包含存儲(chǔ)過程,函數(shù),變量,游標(biāo)等PL/SQL程序
3程序包類似java的jar包,存儲(chǔ)過程,函數(shù),變量,游標(biāo)等相當(dāng)jar包提供的方法
4調(diào)用程序包里面的存儲(chǔ)過程,函數(shù)等元素時(shí),oracle會(huì)把程序包調(diào)入內(nèi)存,下次是使用,直接從內(nèi)存讀取。
那么這些項(xiàng)目屬于私有項(xiàng)目,只能在包體中使用.
一 包的組成
包頭(package):包頭部分申明包內(nèi)數(shù)據(jù)類型,常量,變量,游標(biāo),子程序和異常錯(cuò)誤處理,這些元素為包的公有元素。
包主體(package body):包主體則是包定義部分的具體實(shí)現(xiàn),它負(fù)責(zé)為包頭中所聲明子程序提供具體的實(shí)現(xiàn),在包主體中還可以聲明包的私有元素。
包頭和包主體分開編譯,并作為兩個(gè)分開的對(duì)象分別存放在數(shù)據(jù)庫字典中。
二  包的語法規(guī)則
包頭的語法如下:
create or replace package 包名
As | IS
procedure 過程名();
Function 函數(shù)名() return 數(shù)據(jù)類型;
變量定義;
異常定義;
光標(biāo)定義;
...........
...........
End 包名;
包體創(chuàng)建的語法:
create or replace Package Body 包名
As | IS
Procedure 過程定義;
Procedure 過程定義;
Function 函數(shù)定義;
Function 函數(shù)定義;
.........;

end 包名;
包的開發(fā)步驟

與開發(fā)存儲(chǔ)過程類似,包的開發(fā)需要幾個(gè)步驟:

1.   將每個(gè)存儲(chǔ)過程調(diào)式正確;
2.   用文本編輯軟件將各個(gè)存儲(chǔ)過程和函數(shù)集成在一起;
3.   按照包的定義要求將集成的文本的前面加上包定義;
4.   按照包的定義要求將集成的文本的前面加上包主體;
5.   使用SQLPLUS或開發(fā)工具進(jìn)行調(diào)式。
加密實(shí)用程序

ORACLE 提供了一個(gè)實(shí)用工具來加密或者包裝用戶的PL/SQL,它會(huì)將用戶的PL/SQL改變?yōu)橹挥蠴RACLE能夠解釋的代碼版本.
WRAP 實(shí)用工具位于$ORACLE_HOME/BIN.

格式為:
WRAP INAME=<input_file_name> [ONAME=<output_file_name>]

wrap iname=e:\sample.txt

注意:在加密前,請將PL/SQL程序先保存一份,以備后用。
可以使用 DROP PACKAGE 命令對(duì)不需要的包進(jìn)行刪除,語法如下:
DROP PACKAGE [BODY] [user.]package_name;
包與過程、函數(shù)一樣,也是存儲(chǔ)在數(shù)據(jù)庫中的,可以隨時(shí)查看其源碼。若有需要,在創(chuàng)建包時(shí)可以隨時(shí)查看更詳細(xì)的編譯錯(cuò)誤。不需要的包也可以刪除。
同樣,為了避免調(diào)用的失敗,在更新表的結(jié)構(gòu)后,一定要記得重新編譯依賴于它的程序包。在更新了包說明或包體后,也應(yīng)該重新編譯包說明與包體。語法如下:

ALTER PACKAGE package_name COMPILE [PACKAGE|BODY|SPECIFICATION];

也可以通過以下數(shù)據(jù)字典視圖查看包的相關(guān)。
DBA_SOURCE, USER_SOURCE, USER_ERRORS,DBA-OBJECTS

如,我們可以用:select text from user_source wherename='DEMO_PKG1';來查看我們創(chuàng)建的包的源碼。

以上是“oracle中package包頭和package body包體有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI