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 through the embedded SQL preprocessor, which converts it
to an ordinary C program, and afterwards it can be processed by a C
compiler.
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. Second, the SQL
code in the program is checked at build time for syntactical
correctness. Third, embedded SQL in C is
specified in the SQL standard and supported by
many other SQL database systems. 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 SQL
databases to PostgreSQL with relative
ease.
As already stated, 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 at the
global level 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.