| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
這章描寫一種用於 PostgreSQL 的嵌入SQL包。它是由 Linus Tolke (<linus@epact.se>)和 Michael Meskes (<meskes@postgresql.org>)寫的。 最初它是為了在 C 裡面使用書寫的。它也可以用於 C++, 但是它還不能識別所有 C++ 構造。
這份文件相當不完整。但是因為這個接口是標準,所以我們可以在有關 SQL 的資源裡找到許多額外的訊息。
嵌入 SQL 程序主要由一種普通的編程語言代碼組成,在我們這個場合中是 C, 並且在其中與一些特殊標記的段混合。要製作這樣的程序,原始碼首先經過嵌入的 SQL 預處理器處理,它把原始碼轉換成普通的 C 程序, 然後這個程序可以用 C 編譯器進行處理。
嵌入的 SQL 相比於其它的從 C 代碼中處理 SQL 命令的優點有幾條。首先,它替您照看那些從您的 C 程序中的變量中傳來傳去數值的事情。 第二,在 C 代碼裡嵌入 SQL 是定義在 SQL 標準裡的,並且被許多其它的 SQL 資料庫支援。 PostgreSQL 的實現被設計成盡可能匹配這個標準, 並且通常可以把為其它 SQL 資料庫書寫的 SQL 移植到 PostgreSQL 中來,反之亦然。
如上所述,為嵌入 SQL 接口寫的程序通常是帶著插入進來的特殊代碼的 C 程序, 這些特殊代碼用於執行與資料庫相關的動作。這些特殊代碼通常的形式是下面這樣:
EXEC SQL ...;
這些語句語法上佔據 C 語句的位置。根據具體語句的不同,它們可以出現在全局環境中或者出現在一個函數里。 嵌入的 SQL 語句遵循普通 SQL 代碼的大小寫敏感規則,而不是遵循 C 代碼的。
下面的小節都是用來解釋所有的嵌入 SQL 語句的。