Dynamic preparation and execution
An application program can dynamically build an SQL statement in the form of a character string placed in a host variable.
In general, the statement is built from some data available to the program (for example, input from a workstation). The statement (not a select-statement) constructed can be prepared for execution by means of the (embedded) PREPARE statement, and executed by means of the (embedded) EXECUTE statement. Alternatively, an (embedded) EXECUTE IMMEDIATE statement can be used to prepare and execute the statement in one step.
A statement that is going to be dynamically prepared must not contain
references to host variables. It can instead contain parameter markers.
(For rules concerning parameter markers, see PREPARE
.) When
the prepared statement is executed, the parameter markers are effectively
replaced by current values of the host variables specified in the
EXECUTE statement. Once prepared, a statement can be executed several
times with different values for the host variables. Parameter markers
are not allowed in the EXECUTE IMMEDIATE statement.
Successful or unsuccessful execution of the statement is indicated by the setting of an SQL return code in the SQLCA after the EXECUTE (or EXECUTE IMMEDIATE) statement completes. The SQL return code should be checked, as previously described. For more information, see Detecting and processing error and warning conditions in host language applications.