java在oracle数据库中怎么插入读取CLOB值

java在oracle数据库中怎么插入读取CLOB值,第1张

参考:

/

写入、更新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字段的内容怎么办、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10146436.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存