ERROR: ORA-06548: no more rows needed
CAUSE: The caller of a pipelined function does not need more rows to be produced by the pipelined function.
ACTION: Catch the NO_DATA_NEEDED exception in an exception handling block.
Catching the NO_DATA_NEEDED exception inside the pipelined function allows the function to perform any clean-up needed after the loop.
Example:
The table function returns 1000 rows, but the client (which communicates using ODBC) only fetches 200 at a time. If all the rows are fetched,
then there is no issue; however, if only a subset are fetched before another command is executed, the exception gets raised.
THEN
RETURN; --clean up the resource
CAUSE: The caller of a pipelined function does not need more rows to be produced by the pipelined function.
ACTION: Catch the NO_DATA_NEEDED exception in an exception handling block.
Catching the NO_DATA_NEEDED exception inside the pipelined function allows the function to perform any clean-up needed after the loop.
Example:
The table function returns 1000 rows, but the client (which communicates using ODBC) only fetches 200 at a time. If all the rows are fetched,
then there is no issue; however, if only a subset are fetched before another command is executed, the exception gets raised.
DECLARE
--...
BEGIN
....
EXCEPTION
WHEN no_data_neededTHEN
RETURN; --clean up the resource
END;
/