http://search.csdn.net/expert/topic/61/6101/2002/11/5/1151465.htm
http://expert.csdn.net/Expert/topic/1373/1373219.xml?temp=.8807032用jdbc处理lob 
exmple 4. 
首先是Getting BLOB and CLOB Locators from a Result Set 
// Select LOB locator into standard result set. 
ResultSet rs =stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table"); 
while (rs.next()) 
{// Get LOB locators into Java wrapper classes. 
oracle.jdbc2.Blob blob = (oracle.jdbc2.Blob)rs.getObject(1); 
oracle.jdbc2.Clob clob = (oracle.jdbc2.Clob)rs.getObject(2); 
[...process...] 

然后是Read BLOB data from BLOB locator. 
InputStream byte_stream = my_blob.getBinaryStream(); 
byte [] byte_array = new byte [10]; 
int bytes_read = byte_stream.read(byte_array); 
和Writing BLOB Data  
java.io.OutputStream outstream; 
// read data into a byte array  
byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 
// write the array of binary data to a BLOB 
outstream = ((BLOB)my_blob).getBinaryOutputStream(); 
outstream.write(data); 
还有Passing a BLOB Locator to a Prepared Statement 
OraclePreparedStatement ops = (OraclePreparedStatement)conn.prepareStatement 
"INSERT INTO blob_table VALUES(?)");  
ops.setBLOB(1, my_blob); 
ops.execute(); 
最后应该注意: 
insert的时候一定要用empty_blob()初始化 
stmt.execute ("insert into my_blob_table values ('row1', empty_blob()");