Stored procedures with output parameters
SQL Server stored procedures must be called with the input and
output parameters specification in the USING
clause
of the EXECUTE
, OPEN
or
FOREACH
instruction. As in normal dynamic SQL,
parameters must correspond by position and the IN/OUT/INOUT
options
must match the parameter definition of the stored procedure.
To execute the stored procedure, you must use an ODBC
call
escape
sequence:PREPARE stmt FROM "{ call proc1(?,?,?) }"
Here is a complete example creating and calling a stored procedure
with output parameters:
MAIN
DEFINE n INTEGER
DEFINE d DECIMAL(6,2)
DEFINE c VARCHAR(200)
DATABASE test1
EXECUTE IMMEDIATE
"create procedure proc1"
|| " @v1 integer,"
|| " @v2 decimal(6,2) output,"
|| " @v3 varchar(20) output"
|| " as begin"
|| " set @v2 = @v1 + 0.23"
|| " set @v3 = 'Value = ' || cast(@v1 as varchar)"
|| "end"
PREPARE stmt FROM "{ call proc1(?,?,?) }"
LET n = 111
EXECUTE stmt USING n IN, d OUT, c OUT
DISPLAY d
DISPLAY c
END MAIN