To access LONG and LONG RAW columns, you can use the SQLJ stream classes. SQLJ stream classes are subclasses of the java.io.InputStream and java.io.OutputStream Java classes, and are contained in the sqlj.runtime package. There are three SQLJ stream classes that may be used to define SQLJ host objects:
An AsciiStream host object is used to process ASCII text to be stored or retrieved from a LONG column. You can also use an AsciiStream host object to read VARCHAR2 columns rather than using a Java string to store the content. You might want to do that if a VARCHAR2 column contains a lot of data.
A BinaryStream host object is used to process binary data to be stored or retrieved from a LONG RAW or RAW column. A RAW column has a capacity of 4KB, smaller than the 2GB capacity of a LONG RAW column.
A UnicodeStream host object is used to process text in the Unicode character set to be stored or retrieved from a LONG or VARCHAR2 column. Unicode uses a two-byte character set and can represent over 65,000 characters. Unicode may be used to represent non-English characters.
I use two new tables in this section:
Contains a LONG column named long_column.
Contains a LONG RAW column named long_raw_column.
Both tables also contain a column to store the name of the file from which content was read. The two tables are defined as follows:
CREATE TABLE long_content ( file_name VARCHAR2(40) ...