The PIPE
ROW
statement, which can appear only in the body of a pipelined table function, returns a table row (but not control) to the invoker of the function.
Note:
If a pipelined table function is part of an autonomous transaction, then it must COMMIT
or ROLLBACK
before each PIPE
ROW
statement, to avoid an error in the invoking subprogram.
To improve performance, the PL/SQL runtime system delivers the piped rows to the invoker in batches.
Topics
Syntax
pipe_row_statement ::=
Semantics
pipe_row_statement
row
Row (table element) that the function returns to its invoker, represented by an expression whose type is that of the table element.
If the expression is a record variable, it must be explicitly declared with the data type of the table element. It cannot be declared with a data type that is only structurally identical to the element type. For example, if the element type has a name, then the record variable cannot be declared explicitly with %TYPE
or %ROWTYPE
or implicitly with %ROWTYPE
in a cursor FOR
LOOP
statement.
Examples
Example 12-29, "Creating and Invoking Pipelined Table Function"
Example 12-30, "Pipelined Table Function Transforms Each Row to Two Rows"
Example 12-32, "Pipelined Table Function with Two Cursor Variable Parameters"
Example 12-33, "Pipelined Table Function as Aggregate Function"
Example 12-34, "Pipelined Table Function Does Not Handle NO_DATA_NEEDED"
Example 12-35, "Pipelined Table Function Handles NO_DATA_NEEDED"
Related Topics
In this chapter:
In other chapters: