この章では、PostgreSQL の埋め込み SQL パッケージについて説明します。埋め込みSQLはCとC++によって動作します。 Linus Tolke(<linus@epact.se>)と Michael Meskes(<meskes@postgresql.org>)によって書かれました。
このドキュメンテーションは完全なものではありません。 しかし、このインターフェースは標準化されており、SQL に関するその他の資料でも情報を入手することもできます。
埋め込み SQL プログラムは通常のプログラミング言語 (ここでは C) で記述されたコードで、特別にマークされたセクションにおいて SQL コマンドとともに使用されます。 このプログラムを構築するには、まずソースコードを埋め込み SQL プリプロセッサに渡します。 ソースコードは、プリプロセッサによって通常の C プログラムに変換され、その後 C コンパイルツールチェーンによって処理されます。
C コードから SQL コマンドを扱う場合は、埋め込み SQL の方が他のメソッドよりも有効です。 まず、埋め込み SQL は C プログラムの変数との面倒な情報移動を処理してくれます。 また、C 言語での埋め込み SQL は SQL 標準ですでに定義されており、他のさまざまな SQL データベースでサポートされています。 PostgreSQL の実装は可能な限りこの標準に準拠するよう設計されています。また通常の場合、ほかの RDBMS 用に書かれた埋め込み SQL プログラムを比較的簡単に PostgreSQL へ移植することができます。
先に述べたとおり、埋め込み SQL インターフェース用のプログラムは、通常の C プログラムに、データベース関連のアクションを行うための特別なコードを加えたものです。 特別のコードとは、次のような形式になっています。
EXEC SQL ...;
この文は、構文上で C 文の置き換えとなります。 文によっては、グローバルコンテキスト、または関数内に現れることもあります。 埋め込み SQL 文における大文字小文字の区別の有無は、C コードではなく、通常の SQL コードのルールに従います。
以下の節で、すべての埋め込み SQL 文について説明します。