PREPARE
PREPARE
PREPARE - prepare a statement for execution
Synopsis
PREPAREprepared_name
FROMstring
Description
PREPARE
prepares a statement dynamically
specified as a string for execution. This is different from the
direct SQL statement
PREPARE
, which can also
be used in embedded programs. The
EXECUTE
command is used to execute either kind of prepared statement.
Parameters
Notes
In typical usage, the
string
is a host
variable reference to a string containing a dynamically-constructed
SQL statement. The case of a literal string is not very useful;
you might as well just write a direct SQL
PREPARE
statement.
If you do use a literal string, keep in mind that any double quotes
you might wish to include in the SQL statement must be written as
octal escapes (
\042
) not the usual C
idiom
\"
. This is because the string is inside
an
EXEC SQL
section, so the ECPG lexer parses it
according to SQL rules not C rules. Any embedded backslashes will
later be handled according to C rules; but
\"
causes an immediate syntax error because it is seen as ending the
literal.
Examples
char *stmt = "SELECT * FROM test1 WHERE a = ? AND b = ?"; EXEC SQL ALLOCATE DESCRIPTOR outdesc; EXEC SQL PREPARE foo FROM :stmt; EXEC SQL EXECUTE foo USING SQL DESCRIPTOR indesc INTO SQL DESCRIPTOR outdesc;
Compatibility
PREPARE
is specified in the SQL standard.