12.6. Reading From the Source
The PLVio.get_line procedure is the core program for reading from the source. This header for this program is:
PROCEDURE get_line (line_inout IN OUT line_type, curr_line#_in IN INTEGER := NULL);
The first argument, line_inout, is a record of type line_type (defined in the PLVio specification). The second argument, curr_line#, provides a current line number; if that number is not NULL, it will be used to increment the line# value found in the line_inout record.
The record contains all the information about a line necessary either for PLVio activity or other actions on a line of text. The definition of the record TYPE is:
TYPE line_type IS RECORD (text VARCHAR2(2000) := NULL, len INTEGER := NULL, pos INTEGER := 1, line INTEGER := 0, /* line # in original */ line# INTEGER := 0, /* line # for new */ is_blank BOOLEAN := FALSE, eof BOOLEAN := FALSE);
The following table explains the different fields of a line_type record:
text | The line of text. |
len | The length of the line of text. |
pos | The current position of a scan through this line. |
line | The line number associated with this text in the source. |
line# | The line number associated with this text in the target. |
is_blank | TRUE if the text RTRIMS to NULL. |
eof | TRUE if no line was placed into the record. |
12.6.1. Main Steps of get_line
The get_line procedure has two main steps:
Read a line from the source repository. If reading from a database table, get_line uses the DBMS_SQL builtin package to fetch the next row and read ...
Get Advanced Oracle PL/SQL Programming with Packages 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.