13.48 PIPE ROW Statement
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
orROLLBACK
before eachPIPE
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: