您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“oracle中package包頭和package body包體有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“oracle中package包頭和package body包體有什么用”這篇文章吧。
程序包
1作用是為了實程序模塊化
2程序包里面可以包含存儲過程,函數,變量,游標等PL/SQL程序
3程序包類似java的jar包,存儲過程,函數,變量,游標等相當jar包提供的方法
4調用程序包里面的存儲過程,函數等元素時,oracle會把程序包調入內存,下次是使用,直接從內存讀取。
那么這些項目屬于私有項目,只能在包體中使用.
一 包的組成
包頭(package):包頭部分申明包內數據類型,常量,變量,游標,子程序和異常錯誤處理,這些元素為包的公有元素。
包主體(package body):包主體則是包定義部分的具體實現,它負責為包頭中所聲明子程序提供具體的實現,在包主體中還可以聲明包的私有元素。
包頭和包主體分開編譯,并作為兩個分開的對象分別存放在數據庫字典中。
二 包的語法規則
包頭的語法如下:
create or replace package 包名
As | IS
procedure 過程名();
Function 函數名() return 數據類型;
變量定義;
異常定義;
光標定義;
...........
...........
End 包名;
包體創建的語法:
create or replace Package Body 包名
As | IS
Procedure 過程定義;
Procedure 過程定義;
Function 函數定義;
Function 函數定義;
.........;
end 包名;
包的開發步驟
與開發存儲過程類似,包的開發需要幾個步驟:
1. 將每個存儲過程調式正確;
2. 用文本編輯軟件將各個存儲過程和函數集成在一起;
3. 按照包的定義要求將集成的文本的前面加上包定義;
4. 按照包的定義要求將集成的文本的前面加上包主體;
5. 使用SQLPLUS或開發工具進行調式。
加密實用程序
ORACLE 提供了一個實用工具來加密或者包裝用戶的PL/SQL,它會將用戶的PL/SQL改變為只有ORACLE能夠解釋的代碼版本.
WRAP 實用工具位于$ORACLE_HOME/BIN.
格式為:
WRAP INAME=<input_file_name> [ONAME=<output_file_name>]
wrap iname=e:\sample.txt
注意:在加密前,請將PL/SQL程序先保存一份,以備后用。
可以使用 DROP PACKAGE 命令對不需要的包進行刪除,語法如下:
DROP PACKAGE [BODY] [user.]package_name;
包與過程、函數一樣,也是存儲在數據庫中的,可以隨時查看其源碼。若有需要,在創建包時可以隨時查看更詳細的編譯錯誤。不需要的包也可以刪除。
同樣,為了避免調用的失敗,在更新表的結構后,一定要記得重新編譯依賴于它的程序包。在更新了包說明或包體后,也應該重新編譯包說明與包體。語法如下:
ALTER PACKAGE package_name COMPILE [PACKAGE|BODY|SPECIFICATION];
也可以通過以下數據字典視圖查看包的相關。
DBA_SOURCE, USER_SOURCE, USER_ERRORS,DBA-OBJECTS
如,我們可以用:select text from user_source wherename='DEMO_PKG1';來查看我們創建的包的源碼。
以上是“oracle中package包頭和package body包體有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。