Execute cursor functions from an SPL routine
A cursor function is a user-defined function that returns
one or more rows of data and therefore requires a cursor to execute.
A cursor function can be either of the following functions:
- An SPL function whose RETURN statement includes WITH RESUME
- An external function that is defined as an iterator function
The behavior of a cursor function is the same whether the function is an SPL function or an external function. However, an SPL cursor function can return more than one value per iteration, whereas an external cursor function (iterator function) can return only one value per iteration.
To execute a cursor function from
an SPL routine, you must include the function in a FOREACH loop of
an SPL routine. The following examples show different ways to execute
a cursor function in a FOREACH loop:
FOREACH SELECT cur_func1(col_name) INTO spl_var FROM tab1
INSERT INTO tab2 VALUES (spl_var);
END FOREACH
FOREACH EXECUTE FUNCTION cur_func2() INTO spl_var
INSERT INTO tab2 VALUES (spl_var);
END FOREACH