将大字符串(> 4000)插入Clob jdbc

时间:2015-07-22 14:07:01

标签: java jdbc clob

我坚持这个: 我已经按照互联网上的数百个程序将一个大字符串存储到clob对象中,然后存储到oracle db中。 特别是: 带有空clob的准备好的声明(插入):

executer.add("S_NOTA_GLOBALE", CLOB.getEmptyCLOB());

上面的行是填充查询中非常长的绑定变量。 所以,在这一点上,让我们说我插入了一个空的clob(实际上是真的)。然后:

String sqlText = "SELECT S_NOTA_GLOBALE " +
                 "FROM   SN_DENUNCE " +
                 "WHERE  ID_DENUNCIA = ? " +
                 "FOR UPDATE";


PreparedStatement psClobUpdate= conn.prepareStatement(sqlText);
psClobUpdate.setLong(1,denuncia.getId());  
ResultSet  rset = psClobUpdate.executeQuery();
rset.next();
CLOB  notaGlobale = (CLOB) ((ResultSet) rset).getClob("S_NOTA_GLOBALE");


Writer writer = notaGlobale.setCharacterStream(0);

try {
    writer.write(denuncia.getNotaGlobale().toCharArray());
    writer.flush();
    writer.close();
    rset.close();
} catch (IOException e) {
    e.printStackTrace();
}

另一个用于更新clob的preparedStatement。 问题是,一旦我检索到resultSet,它就是空的,这是合理的(?),因为我刚刚插入了一个空clob。我不知道自己到底在哪里,但我肯定会变得疯狂。

我实施的解决方案取自以下链接(尝试#5): http://fahdshariff.blogspot.it/2008/07/big-strings-and-oracle-clobs.html

注意: jdbc驱动程序11.2.0.4.0

0 个答案:

没有答案