Stored procedures with output parameters
SAP HANA® 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 the
CALL
SQL
instruction: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("
|| " in p1 int,"
|| " out p2 decimal(6,2),"
|| " inout p3 varchar(20)"
|| " )"
|| " language sqlscript as"
|| " begin"
|| " p2 := p1 + 0.23;"
|| " p3 := 'Value = ' || cast(p1 as varchar(10));"
|| " end"
PREPARE stmt FROM "call proc1(?,?,?)"
LET n = 111
EXECUTE stmt USING n IN, d OUT, c INOUT
DISPLAY d
DISPLAY c
END MAIN