7.3. LONG and LONG RAW Columns

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:

AsciiStream

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.

BinaryStream

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.

UnicodeStream

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:

long_content

Contains a LONG column named long_column.

long_raw_content

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) ...

Get Java Programming with Oracle SQLJ 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.