
参考:
/
写入、更新CLOB字段的代码示例
/
public void writeClob() {
//自定义的数据库连接管理类
Connection conn = DbManagergetInstance()getConnection();
try {
connsetAutoCommit(false);
// 1这种方法写入CLOB字段可以。
PreparedStatement stat = conn
prepareStatement("insert into t_clob (id,clobfield) values(sys_guid(),)");
String clobContent = "This is a very very long string";
StringReader reader = new StringReader(clobContent);
statsetCharacterStream(1, reader, clobContentlength());
statexecuteUpdate();
// 2使用类似的方法进行更新CLOB字段,则不能成功
// statclose();
// stat =null;
// stat =
// connprepareStatement("update t_clob set clobfield= where id=1");
// statsetCharacterStream(1, reader, clobContentlength());
// statexecuteUpdate();
// 3需要使用for update方法来进行更新,
// 但是,特别需要注意,如果原来CLOB字段有值,需要使用empty_clob()将其清空。
// 如果原来是null,也不能更新,必须是empty_clob()返回的结果。
stat = conn
prepareStatement("select clobfield from t_clob where id='1' for update");
ResultSet rs = statexecuteQuery();
if (rsnext()) {
oraclesqlCLOB clob = (oraclesqlCLOB) rs
getClob("clobfield");
Writer outStream = clobgetCharacterOutputStream();
char[] c = clobContenttoCharArray();
outStreamwrite(c, 0, clength);
outStreamflush();
outStreamclose();
}
conncommit();
} catch (SQLException | IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
DbManagergetInstance()closeConnection(conn);
}
clob字段是一个特殊的字段,在命令行和工具中查询都不显示内容,需要使用特殊的办法
select utl_rawcast_to_varchar2(DBMS_LOBSUBSTR(column,2000,1)) from t
通过函数将clob字段转换成可查询的形式
以上就是关于java在oracle数据库中怎么插入读取CLOB值全部的内容,包括:java在oracle数据库中怎么插入读取CLOB值、在oracle查询clob字段的内容怎么办、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)