我使用Oracle 11g,我找到了应该将记录插入表
的旧代码代码插入除NCLOB列以外的所有值,并且仅当值存在时(可以为null),然后更新特定列(使用PreparedStatement setCharacterStream()
)。
我想将此代码更改为一个插入,但是要确保没有充分的理由保留此流 - 在插入特定NCLOB列之后更新?
代码(PreparedStatement ps和ps2):
ps = conn.prepareStatement(INSERT_RECORD);
//INSERT INTO DATA_RECORDS (ID) VALUES (?) and other values...
ps.setInt(1, id);
result = ps.executeUpdate() == 1;
if (data != null && result) {
StringReader reader = new StringReader(data);
ps2 = conn.prepareStatement(UPDATE_RECORD);
//UPDATE DATA_RECORDS SET DATA = ? WHERE ID = ?
ps2.setCharacterStream(1, reader, data.length());
ps.setInt(2, id);
...
ps2.executeUpdate();