本章では、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 プログラムの変数との面倒な情報移動を処理してくれます。 更に、プログラム内のSQLコードは構築時に正確な構文になっているかどうか検査されます。 また、C 言語での埋め込みSQLは標準SQL で既に定義されており、他のさまざまな SQLデータベースシステムでサポートされています。 PostgreSQLの実装は可能な限りこの標準に準拠するよう設計されています。 また通常の場合、他のSQLデータベース用に作成された埋め込み SQL プログラムを比較的簡単に PostgreSQL へ移植することができます。
先に述べたとおり、埋め込みSQLインタフェース用のプログラムは、通常の C プログラムに、データベース関連処理を行うための特別なコードを加えたものです。 特別のコードは、常に、次のような形式になっています。
EXEC SQL ...;
この文は、構文上でC言語の文の置き換えとなります。 文によっては、グローバルコンテキスト、または関数内に現れることもあります。 埋め込みSQL文における大文字小文字の区別の有無は、C コードではなく、通常の SQLコードの規則に従います。
以下の節で、すべての埋め込み SQL 文について説明します。