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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 定义个存储过程,调用不行吗

以上是关于oracle 10g中怎样执行很长的sql语句呢(最长可能有10万+字符)的主要内容,如果未能解决你的问题,请参考以下文章

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

oracle10g的存储过程大概怎么调试

SQL 语句在数据库中是怎样执行的

oracle 中怎样查看以前执行过的SQL语句?

.sql脚本文件大于10G怎样执行,SQL2008无法打开

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