共計 1558 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要為大家展示了“oracle 中 package 包頭和 package body 包體有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“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 包體有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!