Calling stored procedures with supported databases / Stored procedure call with IBM Informix |
To retrieve the rows of a result set produced by an IBM® Informix® stored function, you must create a cursor, as you would for a regular SELECT statement.
MAIN DEFINE m, p_pk INT, p_name VARCHAR(10) DATABASE test1 CREATE TABLE t1 ( pk INT, name VARCHAR(10) ) INSERT INTO t1 VALUES (1, 'aaaa') INSERT INTO t1 VALUES (2, 'bbbbbb') INSERT INTO t1 VALUES (3, 'cccc') EXECUTE IMMEDIATE "create function proc3(v_max INT)" ||" returning int, lvarchar;" ||" define r_pk integer;" ||" define r_name lvarchar;" ||" foreach c1 for select pk,name into r_pk, r_name from t1 where pk <= v_max" ||" return r_pk,r_name with resume;" ||" end foreach;" ||" end function" DECLARE c CURSOR FROM "EXECUTE FUNCTION proc3(?)" LET m = 100 FOREACH c USING m INTO p_pk, p_name DISPLAY p_pk, p_name END FOREACH EXECUTE IMMEDIATE "drop function proc3" DROP TABLE t1 END MAIN