JDBC Type 4 Driver Programmer's Reference for SQL/MX Release 3.2.1

NOTE:
The EMPTY_CLOB() function is an HP NonStop specific function and might not work on other
databases.
Do not use the EMPTY_CLOB() function when using the PreparedStatement interface.
The Type 4 driver scans the SQL string for the EMPTY_CLOB() function and substitutes the
next-available data locator.
Then, obtain the handle to the empty CLOB column by selecting the CLOB column for update. The
following code illustrates how to obtain the handle to an empty CLOB column:
Clob myClob = null;
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("Select myClobColumn
from myTable where .for update");
if (rs.next())
myCLOB = rs.getClob(1);
You can now write data to the CLOB column. See “Writing ASCII or MBCS Data to a CLOB Column
(page 57) or “Writing Unicode data to a CLOB column (page 58).
NOTE: Limitation: Do not rename the CLOB column in the select query.
Writing ASCII or MBCS Data to a CLOB Column
You can write ASCII or MBCS data to a CLOB column.
NOTE: Multibyte Character Set (MBCS) data and ASCII data are handled the same way.
ASCII Data
To write ASCII or MBCS data to the CLOB column, use the Clob interface. The following code
illustrates using the setAsciiStream method of the Clob interface to write CLOB data.
// stream begins at position: 1
long pos = 1;
//String containing the ASCII data
String s ;
// Obtain the output stream to write Clob data
OutputStream os = myClob.setAsciiStream(pos);
// write Clob data using OutputStream
byte[] myClobData = s.getBytes();
os.write(myClobData);
The Type 4 driver splits the output stream into chunks and stores the chunks in the LOB table.
Inserting CLOB Data by Using the PreparedStatement Interface
You can use the PreparedStatement interface to insert a CLOB column using ASCII or MBCS
data.
ASCII Data
To insert a CLOB column using ASCII or MBCS data from an InputStream, use the
PreparedStatement interface to insert the CLOB column.
InputStream inputAsciiStream;
PreparedStatement ps = conn.prepareStatement("insert
into myTable (myClobColumn) values (?)");
ps.setAsciiStream(1, inputAsciiStream, length_of_data);
ps.executeUpdate();
Storing CLOB Data 57