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