Stored procedures with result set
With SAP ASE, you can execute stored procedures returning a result set. To do so, you must declare a cursor and fetch the rows.
When the stored procedure generates multiple active statements,
you cannot use another SQL statement while processing
the results of such stored procedure. You must
CLOSE
the
cursor created for the stored procedure before continuing
with other SQL statements.MAIN
DEFINE i, n INTEGER
DEFINE d DECIMAL(6,2)
DEFINE c VARCHAR(200)
DATABASE test1
CREATE TABLE tab1 ( c1 INTEGER, c2 DECIMAL(6,2), c3 VARCHAR(200) )
INSERT INTO tab1 VALUES ( 1, 123.45, 'aaaaaa' )
INSERT INTO tab1 VALUES ( 2, 123.66, 'bbbbbbbbb' )
INSERT INTO tab1 VALUES ( 3, 444.77, 'cccccc' )
EXECUTE IMMEDIATE "create procedure proc2 @key integer"
|| " as select * from tab1 where c1 > @key"
DECLARE curs CURSOR FROM "!rpc proc2( @key )"
LET i = 1
FOREACH curs USING i INTO n, d, c
DISPLAY n, d, c
END FOREACH
END MAIN