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不能拆开执行的
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怎么将表中字段的很长的字符串数据更改其中一两个字符