2011-11-15 55 views
1

正常方式更新的Oracle的Clob看起來是這樣的:如何通過使用JDBC

pStmt = conn.prepareStatement("SELECT DETAILS FROM PROGRAM_HISTORY WHERE id = 12"); 
    rset = pStmt.executeQuery(); 
    Clob detailsClob= rset.getClob(1); 
    Writer writer = adapter.getCharacterOutputStream(detailsClob); 
    writer.write("add more details"); 

    pStmt = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12"); 
    pStmt.setClob(1, detailsClob); 
    pStmt.execute(); 

這是一個有點複雜,是我不需要讀第一則更新它的任何方式。就像update varchar一樣。

+0

相似的問題:http://stackoverflow.com/questions/678060 –

回答

6

不知道爲什麼你稱之爲「正常」的方式,但下面的作品適合我。

它在更新之前不需要任何數據檢索。

String value = "So long and thanks for all the fish"; 
StringReader reader = new StringReader(value); 
pStmt = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12"); 
pStmt.setCharacterStream(1, reader, value.length(); 
pStmt.executeUpdate(); 
+0

正常的方式意味着我們通常這樣做。你的方式似乎很好,你喜歡選擇哪一個? 「正常」的方式或你的方式, –

+1

@ user872501:我認爲「我的方式」是「正常」的方式;) –