PLSQL-包函數存儲過程

包:java

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

好處:編程

  在程序設計時,程序員能夠經過完成某種業務邏輯的包來簡化編程。安全

  包被加載到SGA,便不須要從新加載,減小調用的加載時間。函數

  包能夠增長安全性,經過建立私有過程或者函數來實現業務邏輯和數據隱藏。spa

包的建立:設計

PACKAGE package_name對象

ISelement

  [變量或者類型說明]io

  [遊標聲明]

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

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)也能夠沒有參數,可是函數必需要有返回值,須要在函數定義中明確指定返回的數據類型。

相關文章
相關標籤/搜索