A function cursor
A function cursor enables you to scan multiple rows of data that the user-defined function returns.
The following user-defined functions can return more than one row:
- An SPL function that contains the WITH RESUME keywords in its
RETURN statement
For information about how to write this type of SPL function, see the chapter on SPL in the Informix® Guide to SQL: Tutorial.
- An external function that is an iterator function
For information about how to write an iterator function, see the Informix® DataBlade® API Programmer's Guide.
You execute a user-defined function with the EXECUTE FUNCTION statement.
The DECLARE statement associates the EXECUTE FUNCTION with the function
cursor. In the DECLARE statement, the EXECUTE FUNCTION statement can
be in either of the following formats:
- A literal EXECUTE FUNCTION statement in the DECLARE statement
The following DECLARE statement associates a literal EXECUTE FUNCTION statement with the func1_curs cursor:
EXEC SQL declare func1_curs cursor for execute function func1();
- A prepared EXECUTE FUNCTION statement in the DECLARE statement The following DECLARE statement associates a prepared EXECUTE FUNCTION statement with the func2_curs cursor:
EXEC SQL prepare func_stmt from 'execute function func1()'; EXEC SQL declare func2_curs cursor for func_stmt;
If the external or SPL function returns only one row, it does not require a function cursor to execute.