Stored procedure with output parameters
To execute a stored procedure with PostgreSQL, you must use
CALL procname, as
shown in this line:PREPARE stmt FROM "call proc1(?,?,?)"In order to retrieve returning values into program variables, you
must use an INTO clause in the EXECUTE instruction.
The following example shows how to call a stored procedure with
PostgreSQL:
MAIN
DEFINE n INTEGER
DEFINE d DECIMAL(6,2)
DEFINE c VARCHAR(200)
DATABASE test1
EXECUTE IMMEDIATE
"create procedure proc1("
|| " p1 integer,"
|| " inout p2 numeric(6,2),"
|| " inout p3 varchar(200)"
|| " )"
|| " as $$"
|| " begin"
|| " p2:= p1 + 0.23;"
|| " p3:= 'Value = ' || cast(p1 as text);"
|| " end;"
|| " $$ language plpgsql"
PREPARE stmt FROM "call proc1(?,?,?)"
LET n = 111
EXECUTE stmt USING n, d, c INTO d, c
DISPLAY d
DISPLAY c
END MAIN