Admittedly, this documentation is quite incomplete. But since this interface is
standardized, additional information can be found in many resources about SQL.
An embedded SQL program consists of code written in an ordinary programming language,
in this case C, mixed with SQL commands in specially marked sections. To build the
program, the source code is first passed to the embedded SQL preprocessor, which converts
it to an ordinary C program, and afterwards it can be processed by a C compilation tool
chain.
Embedded SQL has advantages over other methods for
handling SQL commands from C code. First, it takes care of
the tedious passing of information to and from variables in your C
program. Secondly, embedded SQL in C is defined in the SQL standard and supported by many
other SQL databases. The PostgreSQL implementation is designed to match this standard as
much as possible, and it is usually possible to port embedded SQL
programs written for other RDBMS to PostgreSQL
with relative ease.
As indicated, programs written for the embedded SQL interface are normal C programs
with special code inserted to perform database-related actions. This special code always
has the form
EXEC SQL ...;
These statements syntactically take the place of a C statement. Depending on the
particular statement, they may appear in the global context or within a function. Embedded
SQL statements follow the case-sensitivity rules of normal SQL code, and not those of C.
The following sections explain all the embedded SQL statements.