存儲過程與函數
存儲過程和函數是兩種類型的編程塊。他們兩個都有主叫的名字。這些調用名用於在另一個編程塊(如過程、函數、包或SQL查詢)中調用它們。這兩種對象類型都接受參數並在這些對象後面執行任務。這是(在ORACLE中)創建存儲過程的語法,
創建或替換過程程序重命名(參數)
作為
開始
聲明;
例外
異常處理
結束;
這裡是創建函數的語法(在ORACLE中),
創建或替換函數函數名(參數)
return返回_數據類型
作為
開始
聲明;
返回返回值/變量;
例外情況;
異常處理;
結束;
存儲過程
如上所述,存儲過程被命名為編程塊。它們接受參數作為用戶輸入,並根據過程背後的邏輯進行處理並給出結果(或執行特定操作)。這些參數可以是IN、OUT和INOUT類型。變量聲明、變量分配、控制語句、循環、SQL查詢和其他函數/過程/包調用可以在過程體中。
功能
函數也被命名為編程塊,它必須使用return語句返回值,在返回值之前,它的主體也執行一些操作(根據給定的邏輯)。函數也接受要運行的參數。函數可以在查詢內部調用。在SELECT查詢中調用函數時,它將應用於SELECT查詢結果集的每一行。ORACLE函數有幾種類型。他們是,
- 單行函數(為查詢的每一行返回一個結果)
有一個單行函數的子類別。
- 數字函數(例如:ABS、SIN、COS)
- 字符函數(例如:CONCAT、INITCAP)
- 日期時間函數(例如:最後一天,下一天)
- 轉換函數(例如:TO\u CHAR,TO\u DATE)
- 集合函數(例如:基數、集合)
- 聚合函數(根據一組行返回一行。示例:平均值、總和、最大值)
- 解析函數
- 對象引用函數
- 模型函數
- 用戶定義函數
函數和存儲過程有什麼區別?•所有函數必須使用return語句返回值。存儲過程不使用return語句返回值。過程中的RETURN語句將其控件返回給調用程序。OUT參數可用於從存儲過程中返回值。•可以在查詢內部調用函數,但不能在查詢內部使用存儲過程。•必須包含返回數據類型才能創建函數,但在存儲過程DDL中則不是 |