標籤:
儲存函數
1.預存程序簡介
下面先來簡單介紹一下oracle的預存程序的文法,如下:
預存程序簡單文法
下面簡單介紹一下使用預存程序的優點:
(1)使用方便。建立儲存是將命名物件直接放入到資料庫中,因為代碼不儲存在本地,使用者可以在任何一個客戶機上使用或調用預存程序。
(2)安全性。預存程序是由資料庫提供的安全保證,使用者要想使用預存程序必須先經過預存程序的所有者授權使用者才能調用或者修改預存程序。
(3)傳遞性。可以給預存程序設定帶參或者多參,亦或者沒有傳回值類型。預存程序的傳回值必須通過參數帶回(out輸出類型)。
預存程序與儲存函數的區別:
儲存函數可以使用 Return返回一個函數,預存程序不可以。
2.定義並使用變數
PL/SQL有四種類型:標量類型,複合類型,參考型別 (reference),LOB(Large Obejct)類型
一、標量類型
最常用的就是標量類型,是指只能存放單個數值的變數,包括數字類型、字元類型、日期類型和布爾類型,每種類型又包含相應的子類型。如“:=”把“=”取代,使用方法如下:v_rate integer :1;
二、複合變數:
用於存放多個值的變數稱為複合變數,包括PL/SQL記錄,PL/SQL表,巢狀表格和VARRAY四種類型
三、引用變數(reference)
類似於C++中的指標或者JAVA中引用的概念,用於存放數值指標的變數,使用此變數,可以使得應用程式共用相同對象,降低佔用空間。此類有兩種類型:遊標(REF CURSOR)和物件類型(REF OBJECT)
四、LOB類型
LOB類型是指用於儲存大批量資料的變數,包括內部的3種(CLOB,BLOB,NCLOB)和外部LOB(BFILE)。
CLOB,NCLOB用於儲存大量的字元資料。
BLOB用於儲存大批量位元據(象)。
3.給使用者佈建許可權
1.1 使用者只能修改的許可權,文法如下:
grant execute on 預存程序名稱 to 使用者名稱;
1.2使用者只能查詢的許可權:
grant select on 預存程序名稱 to 使用者名稱;
4.引用預存程序的方式
(1)execute方法後跟預存程序名,execute也可以簡寫為exec。
(2)begin end;塊中寫預存程序名稱進行調用。
儲存函數
1.簡單介紹儲存函數
儲存函數,也是一種命名的儲存程式,可傳入參數,並進行一系列的操作。儲存函數與預存程序結構類似,與預存程序不同的是,函數必須要跟一個return語句,用於返回函數值。
2.文法
1 create or replace function Tony_Function 2 ( 3 num in number , 4 sum out number 5 ) 6 return number 7 as 8 begin 9 null;10 return 0;11 end;
儲存函數基本文法 預存程序與儲存函數的int(輸入參數)和out(輸出參數)有什麼區別?
(1)預存程序和儲存函數都可以有out參數;
(2)預存程序和儲存函數都可以有多個out參數;
(3)預存程序可以使用out參數來實現傳回值;
(4)儲存函數使用return來實現傳回值;
ps:如果只有一個傳回值使用儲存函數,有多個傳回值則使用儲存函數。
oracle預存程序