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
The following sections explain all the embedded SQL statements.