2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11

CALL

CALL — 呼叫儲存過程

概要

CALL name ( [ argument ] [, ...] )

描述

CALL 執行一個儲存過程。

如果儲存過程有任何輸出引數,則會返回一個結果行,其中包含這些引數的值。

引數

name

儲存過程的名稱(可選的模式限定)。

argument

儲存過程呼叫的引數表示式。

引數可以使用以下語法包含引數名稱: name => value。這與普通函式呼叫相同;有關詳細資訊,請參閱 第 4.3 節

必須為所有缺少預設值的儲存過程引數提供引數,包括 OUT 引數。但是,匹配 OUT 引數的引數不會被評估,因此通常只為它們編寫 NULL。(為 OUT 引數編寫其他內容可能會導致與未來 PostgreSQL 版本相容性問題。)

註釋

使用者必須擁有該儲存過程的 EXECUTE 許可權才能呼叫它。

要呼叫函式(而不是儲存過程),請改用 SELECT

如果在事務塊中執行 CALL,那麼被呼叫的儲存過程不能執行事務控制語句。只有當 CALL 在其自己的事務中執行時,才允許事務控制語句。

PL/pgSQLCALL 命令中處理輸出引數的方式不同;請參閱 第 41.6.3 節

示例

CALL do_db_maintenance();

相容性

CALL 符合 SQL 標準,除了對輸出引數的處理。標準規定使用者應該編寫變數來接收輸出引數的值。

另請參閱

CREATE PROCEDURE

提交更正

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