java更新一个很长的字符串到oracle某表clob字段里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java更新一个很长的字符串到oracle某表clob字段里相关的知识,希望对你有一定的参考价值。

有一个很长的字符串log,oracle有表TEST,表中有一个字段T_LOG,类型是CLOB。现需要把此log,更新到T_LOG这个字段中去,如何实现? 我试了用update不行。

参考技术A 用?替换成参数试试
prep.setBlob(1,log);
prep.setString(2,ser);追问

能把SQL语句也写一下吗?谢谢

追答

update test set t_log=? where t_serial_number=?

本回答被提问者和网友采纳

oracle 10g中怎样执行很长的sql语句呢(最长可能有10万+字符)

本来是定义了一个clob变量vc_sql存储的,然后execute immediate vc_sql;报错,查了下说是11g才支持,10g上有什么办法可以实现这个功能啊
如果把sql保存成一个文件也可以,不过我不知道在oracle存储过程中怎样执行文件中的sql
注:这个sql不能拆开执行的

DECLARE
lv_sql clob;--很长长很长的字符串 4G ,记住太长不能后在plsql不能打印,不能to_char,只要执---行就可以了,想要看结果可以写入一个表字段位clob,再select查看。
X number; --声明变量
BEGIN
x:=1; --给初值
FOR X IN REVERSE 1..10000 LOOP --reverse由大到小
lv_sql :=lv_sql || 'insert into testtable (aa) values(''111'')'|| ';';
END LOOP;
execute immediate lv_sql;
END;
---可以拼接可以很长很长,希望能帮到大家,然后点个赞,让更多的人知道
参考技术A 没有特别好的办法,SQL语句不能超过36767个字符,还是想办法拆开吧 参考技术B 例如
SQL>@C:\sql.sql

这样可以引用外部的sql语句来执行
参考技术C vc_sql clob;

execute immediate TO_CHAR(vc_sql);
这样试试吧追问

这样执行一些稍短的可以,长的还是会有问题:报错-6502 ORA-06502: PL/SQL: numeric or value error

参考技术D 定义个存储过程,调用不行吗

以上是关于java更新一个很长的字符串到oracle某表clob字段里的主要内容,如果未能解决你的问题,请参考以下文章

oracle 10g中怎样执行很长的sql语句呢(最长可能有10万+字符)

如何在 Oracle 中读取很长的 BLOB 列?

oracle怎么将表中字段的很长的字符串数据更改其中一两个字符

用java写一个程序,从一个很长的字符串中搜索出某一段字符,列出所有符合的字符

从 JSON 中提取很长的字符串到 CLOB

java 很长的大数 如何用String 相加,相乘?