LONGs

Just like the LONG RAW data type, a LONG data type is streamed. And, like a CLOB data type, a LONG is subject to NLS character set conversion. LONG column values can be updated using the PreparedStatement object’s setAsciiStream( ) , setBinary -Stream( ), and setCharacterStream( ) streaming methods. Alternatively, LONG values can be updated using the setBytes( ) and setString( ) methods. LONG column values are read using the ResultSet object’s complementary get methods. The streaming get methods are getAsciiStream( ) , getBinaryStream( ) , and getCharacter -Stream( ); the nonstreaming get methods are getBytes( ) and getString( ) .

Inserting or Updating a LONG

Other than the use of the methods just mentioned, when inserting or updating a LONG, there are limitations on the size of a String or byte array that you can update using the setString( ) or setBytes( ) methods. These limitations are listed in Table 11-3. When you exceed these limits, you will get the following error message: “Data size bigger than max size for this type: ####.” To work around these limitations, you need to use the streaming methods.

Selecting a LONG

To retrieve data in ASCII, use the ResultSet object’s getAsciiStream( ) method. You can use the getAsciiStream( ) method only if the underlying database uses the US7ASCII or WE8ISO8859P1 character set. Otherwise, you can use the getCharacterStream( ) method, which returns UCS-2-encoded characters (Unicode) regardless of the underlying database’s character set. ...

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