PLSQL-包函數存儲過程


包:

包是PLSQL中多個單元的邏輯組合,他將過程組合在一個包內容,以供用戶調用,使用后,不需要程序員頻繁的修改程序,可以保持程序的邏輯完整性,對包中的過程重新定義或者編譯,以便修改部分功能,從而更好的實現業務功能。

好處:

  在程序設計時,程序員可以通過完成某種業務邏輯的包來簡化編程。

  包被加載到SGA,便不需要重新加載,減少調用的加載時間。

  包可以增加安全性,通過創建私有過程或者函數來實現業務邏輯和數據隱藏。

包的創建:

PACKAGE package_name

IS

  [變量或者類型說明]

  [游標聲明]

  [主體對象聲明(如函數過程等)]

END packeage_name

 

PACKAGE BODY package_name

IS

  [變量或者游標聲明]

  [游標相關select語句聲明]

  [主體對象body聲明]

BEGIN

  可執行代碼

EXCEPTION

  [異常處理]

END package_name

 

調用方式

①  PACKAGE_NAME.element_name (包外)

②  直接調用  (包內)

 

如果有同名過程需要不同的參數加以區分。同java等語言相同,函數重載*

 

包的私有過程和函數 (按私有變量理解)

在包的聲明中沒有定義在包體中創建的函數或者過程時,要外部調用包體中的函數或者過程會報錯,此時包體中的函數和過程稱為私有的,只能在包體內部調用

當在包聲明中定義函數或者過程,但是未在包體中定義函數或者過程則會報錯。

實現了信息安全和豐富了包的業務邏輯,實現信息隱藏  

 

過程:

CREATE OR REPLACE PRODUCE PRODUCE_NAME

IS

聲明區

BEGIN

執行區

EXCEPTION

異常處理區

END;

過程中的IN OUT

In是輸入參數,out是輸出參數

 

函數:

CREATE OR REPLACE FUNCTION function_name (f  float)

RETURN float

IS

BEGIN

return f*f

END function_name;

函數定義,函數名,參數(in out)也可以沒有參數,但是函數必須要有返回值,需要在函數定義中明確指定返回的數據類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM