0
我知道它的工作原理是使用SQL如何將空字符串更新爲oracle Clob
update activity set REFERENCE = EMPTY_CLOB() where id = ?
但我不能這樣做,我不能在SQL中硬編碼'EMPTY_CLOB()'。 我使用的方式如下:
String empty_string = "";
conn = getConnection();
pStmt = conn.prepareStatement("SELECT REFERENCE FROM activity WHERE ID = ? FOR UPDATE");
pStmt.setLong(1, 1);
rset = pStmt.executeQuery();
Clob clob = null;
while (rset.next()) {
clob = rset.getClob(1);
Writer writer = adapter.getCharacterOutputStream(clob);
writer.write(empty_string);
writer.flush();
writer.close();
}
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setClob(1, clob);
pStmt.setLong(2, 1);
pStmt.executeUpdate();
但它沒有用。 clob沒有更新爲空字符串,它仍然存儲爲以前的值。
任何身體都可以幫助我嗎?
+1建議將列設置爲NULL。 –
感謝您的建議,我認爲您的方式有效。但。只是有點混亂,因爲你的方式簡單而且表現很好,爲什麼所有的人總是在做並且仍然在做。先選擇然後更新。形式oracle官方文檔還是建議先選擇然後更新。令人困惑...... –
@ user872501:我從來沒有見過它。所以你對「*所有人*」的看法似乎與我對所有人的看法不同* –