【发布时间】:2021-06-18 02:01:59
【问题描述】:
我在我的 docker 环境中安装了 oracle db 版本 19c 并设置了一个填充了虚拟数据的数据库。但是,当我尝试运行一个非常大的查询时,我得到了错误:
SP2-0341:变量替换期间行溢出(> 第 1 行的 3000 个字符)。
我尝试使用换行符将其拆分,但根据拆分方式,我会遇到各种错误,例如:
第 2 行出现错误:ORA-00933:SQL 命令未正确结束
或
第 2 行出现错误: SP2-0341:变量替换期间行溢出(> 第 3 行的 3000 个字符)
查询格式为
SELECT AA.n_name AS AA_n_name, AA.n_nationkey AS ...
FROM nation AS AA FULL OUTER JOIN supplier...
WHERE (AC.p_partkey = ... AND...) OR((AC.p_partkey = ...)); -- The where part is over 5000 characters long--
是否有替代方案或解决方案可以在命令行中解决此问题?我也尝试将查询作为 sql 文件运行并达到 4999 限制。如果有帮助,我在 Ubuntu 服务器上,如果有任何帮助,我将不胜感激。
【问题讨论】:
-
您可以在脚本的任何位置插入换行符
-
当我说换行符时,我的意思是换行符,所以不幸的是我仍然卡住了。
-
整个查询的长度是多少?为什么它这么大?
-
它有超过 6000 个字符长,适用于我正在进行的项目。
-
然后看起来查询格式错误,因为在任何地方都允许换行并且不会产生任何错误。我无法想象 6000 长并且位于一行中的手写查询:没有人会一次尝试正确地编写它,并且为了便于阅读,它应该使用适当的格式逐步编写。好伤心,但看起来这个问题无法回答
标签: sql database oracle docker