Contents Index EXCEPT operation EXECUTE statement [T-SQL]

ASA SQL Reference
  SQL Statements

EXECUTE statement [ESQL]


Description 

Use this statement to execute a prepared SQL statement.

Syntax 1 

EXECUTE statement
USING { hostvar-list | DESCRIPTOR sqlda-name } ]
INTO { into-hostvar-list | DESCRIPTOR into-sqlda-name } ]
ARRAY :integer ]

statement :  { identifier | hostvar | string }

sqlda-name : identifier

into-sqlda-name :  identifier

Syntax 2 

EXECUTE IMMEDIATE statement

statement : { string | hostvar }

Parameters 

USING clause    Results from a SELECT statement or a CALL statement are put into either the variables in the variable list or the program data areas described by the named SQLDA. The correspondence is one-to-one from the OUTPUT (selection list or parameters) to either the host variable list or the SQLDA descriptor array.

INTO clause    If EXECUTE INTO is used with an INSERT statement, the inserted row is returned in the second descriptor. For example, when using auto-increment primary keys or BEFORE INSERT triggers that generate primary key values, the EXECUTE statement provides a mechanism to re-fetch the row immediately and determine the primary key value that was assigned to the row. The same thing can be achieved by using @@identity with auto-increment keys.

ARRAY clause    The optional ARRAY clause can be used with prepared INSERT statements to allow wide inserts, which insert more than one row at a time and which may improve performance. The integer value is the number of rows to be inserted. The SQLDA must contain a variable for each entry (number of rows * number of columns). The first row is placed in SQLDA variables 0 to (columns per row)-1, and so on.

Usage 

The EXECUTE statement can be used for any SQL statement that can be prepared. Cursors are used for SELECT statements or CALL statements that return many rows from the database (see Using cursors in embedded SQL).

After successful execution of an INSERT, UPDATE or DELETE statement, the sqlerrd[2] field of the SQLCA (SQLCOUNT) is filled in with the number of rows affected by the operation.

Syntax 1    Execute the named dynamic statement, which was previously prepared. If the dynamic statement contains host variable place holders which supply information for the request (bind variables), either the sqlda-name must specify a C variable which is a pointer to an SQLDA containing enough descriptors for all of the bind variables occurring in the statement, or the bind variables must be supplied in the hostvar -list.

Syntax 2    A short form to PREPARE and EXECUTE a statement that does not contain bind variables or output. The SQL statement contained in the string or host variable is immediately executed, and is dropped on completion.

Permissions 

Permissions are checked on the statement being executed.

Side effects 

None.

See also 

EXECUTE IMMEDIATE statement [SP]

PREPARE statement [ESQL]

DECLARE CURSOR statement [ESQL] [SP]

Standards and compatibility 
Example 

Execute a DELETE.

EXEC SQL EXECUTE IMMEDIATE
'DELETE FROM employee WHERE emp_id = 105';

Execute a prepared DELETE statement.

EXEC SQL PREPARE del_stmt FROM
'DELETE FROM employee WHERE emp_id = :a';
EXEC SQL EXECUTE del_stmt USING :employee_number;

Execute a prepared query.

EXEC SQL PREPARE sel1 FROM
'SELECT emp_lname FROM employee WHERE emp_id = :a';
EXEC SQL EXECUTE sel1 USING :employee_number INTO :emp_lname;

Contents Index EXCEPT operation EXECUTE statement [T-SQL]