Named iterators
To declare a named iterator class, use the following syntax:
#sql [modifiers
] iteratorclass_name
[implementsinterface_class
[,interface_class
. . .]] [withconstant_name
=value
[,constant_name
=value
. . .]] (java_type
column_name
[,java_type
column_name
...]);
where:
- modifiers
Optional Java class modifier: public, private, protected, static.
- class_name
Name for the iterator class.
- interface_class
The interface(s) implemented by the iterator class. If the iterator implements the sqlj.runtime.Scrollable class (available with Oracle 8.1.7 and later), the iterator will support the following navigation functions:
previous( )
first( )
last( )
absolute(row_number)
relative(relative_number): number of rows relative to current row
afterLast( )
beforeFirst( )
and these other functions:
setFetchDirection(direction), where direction can be a constant in sqlj.runtime.ResultSetIterator of FETCH_FORWARD, FETCH_REVERSE, or FETCH_UNKNOWN as a hint
getFetchDirection( )
isFirst( )
isLast( )
isBeforeFirst( )
isAfterLast( )
- constant_name
Name of a constant that can be accessed in the iterator.
- java_type
Java datatype of an iterator column.
- column_name
Name of the column in the iterator. If this name is different from the column name, you should use AS to identify the iterator column.
Once you have declared a named iterator, you can select into it with this syntax:
#sqliterator_name
= {sql_statement
};
When the named iterator has been populated, you can move through the rows in the iterator by using ...
Get Oracle in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.