====== EXECUTE Statement ======
EXECUTE (EXEC or EXECUTE IMMEDIATE) statement executes a dynamic SQL statement and can return the scalar result to local variables.
You can also use this statement to call a stored procedure.
**Syntax:**
EXEC | EXECUTE | EXECUTE IMMEDIATE dynamic_sql_string [INTO var1, var2, ...];
|
EXEC | EXECUTE proc_name [parm1 = val1, ... ]
**Parameters:**
| **Parameter** | **Type** | **Value** | **Description** |
| dynamic_sql_string | VARCHAR | Variable or expression | Dynamic SQL to execute |
| INTO var1, var2, ... | Any | Variable | Variables to assign, optional |
**Notes**:
* If the query returns more than 1 row and the INTO clause is specified, only the columns from the first row are used in assignment
* If the statement returns 1 or more rows and the INTO clause is not specified, the result set data is sent to the standard output
* EXEC, EXECUTE are EXECUTE IMMEDIATE synonyms
**Example:**
Return the result into a variable:
DECLARE cnt INT;
EXECUTE 'SELECT COUNT(*) FROM db.orders' INTO cnt;
Execute a DML statement:
DECLARE tabname VARCHAR(100) DEFAULT 'tab1';
EXECUTE IMMEDIATE 'CREATE TABLE ' || tabname || ' (c1 INT)';
Print the results to standard output:
EXEC 'SELECT ''A'', ''B'' FROM dual';
Call a stored procedure:
ALTER PROCEDURE spOrders
@lim INT
AS
DECLARE @cnt INT = 0
SELECT @cnt = COUNT(*) from src LIMIT @lim
IF @cnt > 0
SELECT * FROM src
GO
EXEC spOrders @lim = 3
**Compatibility:** Oracle, IBM DB2 and Microsoft SQL Server.
**Version:**
* HPL/SQL 0.3.11 - Execute a stored procedure
* PL/HQL 0.01