支援的版本:目前 (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 標準中指定。

提交更正

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