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 / 9.0 / 8.4 / 8.3 / 8.2 / 7.2 / 7.1

34.1. 概念 #

嵌入式 SQL 程式由用普通程式語言(在此為 C 語言)編寫的程式碼和特殊標記的 SQL 命令組成。要構建程式,首先將原始碼(*.pgc)透過嵌入式 SQL 預處理器處理,將其轉換為普通的 C 程式(*.c),然後才能由 C 編譯器進行處理。(有關編譯和連結的詳細資訊,請參閱第 34.10 節。)轉換後的 ECPG 應用程式透過嵌入式 SQL 庫(ecpglib)呼叫 libpq 庫中的函式,並使用標準的客戶機-伺服器協議與 PostgreSQL 伺服器進行通訊。

嵌入式SQL在從 C 程式碼處理命令的其他方法方面具有優勢。首先,它負責將資訊傳遞到程式變數和從程式變數中傳遞資訊的繁瑣工作。其次,在構建時會檢查程式中的 SQL 程式碼的語法正確性。第三,嵌入式SQL程式碼。第二,在構建時會檢查程式中的 SQL 程式碼的語法正確性。第三,嵌入式CC 語言是標準中規定的,並且被許多其他SQL資料庫系統支援。The PostgreSQL implementation is designed to match this standard as much as possible, and it is usually possible to port embeddedSQL資料庫系統支援。The PostgreSQL implementation is designed to match this standard as much as possible, and it is usually possible to port embeddedSQLC 語言程式,而無需付出太大的努力即可移植到 PostgreSQLSQL如前所述,為嵌入式

介面編寫的程式是普通的 C 程式,其中插入了用於執行資料庫相關操作的特殊程式碼。此特殊程式碼始終採用以下形式SQL這些語句在語法上可以替代 C 語句。根據具體語句,它們可以出現在全域性級別或函式內部。

EXEC SQL ...;

這些語句在語法上可以替代 C 語句。根據具體語句,它們可以出現在全域性級別或函式內部。

嵌入式SQL語句遵循普通SQL程式碼的區分大小寫規則,而不是 C 語言的規則。此外,根據 SQL 標準,它們還允許巢狀的 C 風格註釋。但是,程式的 C 部分遵循 C 語言的標準,不允許巢狀註釋。嵌入式SQL語句在解析帶引號的字串和識別符號時,也使用 SQL 規則,而不是 C 規則。(分別參見第 4.1.2.1 節第 4.1.1 節。請注意,ECPG 假定 standard_conforming_stringson。)當然,程式的 C 部分遵循 C 語言的引用規則。

以下各節將解釋所有嵌入式 SQL 語句。

提交更正

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