支援的版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11

36.4. 使用者定義程序 #

程序是一種與函式相似的資料庫物件。主要的差異是

  • 程序使用 CREATE PROCEDURE 命令定義,而不是 CREATE FUNCTION

  • 程序不傳回函式值;因此 CREATE PROCEDURE 缺少 RETURNS 子句。然而,程序可以透過輸出參數將資料傳回給呼叫者。

  • 函式是在查詢或 DML 命令中呼叫,而程序是使用 CALL 命令獨立呼叫。

  • 程序可以在執行期間提交或回滾交易(然後自動開始新的交易),只要呼叫的 CALL 命令不是明確交易區塊的一部分。函式不能這樣做。

  • 某些函式屬性(例如 strictness)不適用於程序。這些屬性控制函式在查詢中的使用方式,與程序無關。

以下章節中關於如何定義使用者定義函式的說明也適用於程序,除了上述各點之外。

統稱而言,函式和程序也稱為常式(routines)。有些命令(例如 ALTER ROUTINEDROP ROUTINE)可以對函式和程序進行操作,而無需知道它是哪種類型。但請注意,沒有 CREATE ROUTINE 命令。

提交更正

如果您在文件中發現任何不正確、與您特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。