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

EXECUTE IMMEDIATE

EXECUTE IMMEDIATE — 動態準備並執行一個語句

概要

EXECUTE IMMEDIATE string

描述

EXECUTE IMMEDIATE 會立即準備並執行一個動態指定的 SQL 語句,而無需檢索結果行。

引數

string #

一個包含要執行的 SQL 語句的字面量字串或主機變數。

註釋

在典型用法中,string 是一個指向包含動態構造的 SQL 語句的字串的主機變數引用。字面量字串的情況用處不大;您不如直接寫 SQL 語句,而無需額外輸入 EXECUTE IMMEDIATE

如果您確實使用字面量字串,請記住,您可能希望包含在 SQL 語句中的任何雙引號必須寫成八進位制轉義(\042),而不是 C 語言的慣用寫法 \"。這是因為該字串位於 EXEC SQL 部分內,所以 ECPG 詞法分析器會根據 SQL 規則而不是 C 規則來解析它。任何嵌入的反斜槓之後都會根據 C 規則進行處理;但是 \" 會導致立即的語法錯誤,因為它被視為結束了字面量。

示例

這是一個使用 EXECUTE IMMEDIATE 和名為 command 的主機變數執行 INSERT 語句的示例

sprintf(command, "INSERT INTO test (name, amount, letter) VALUES ('db: ''r1''', 1, 'f')");
EXEC SQL EXECUTE IMMEDIATE :command;

相容性

EXECUTE IMMEDIATE 是在 SQL 標準中指定的。

提交更正

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