【发布时间】:2011-09-05 17:29:00
【问题描述】:
我正在开发一个应用程序,该应用程序将连接到 Oracle 或 SQL Server 并构建要在服务器上执行的 SQL 字符串。我发现当 SQL 字符串超过 ~4000 个字符时,我的方法在 Oracle 中失败。我已经超过了 4000,但只有一点点;我假设 Oracle 忽略了一些空白/格式化字符。
一旦我进入 Oracle 过程,我使用的 VARCHAR2 的最大长度为 32,767 - 我认为这应该绰绰有余,但我似乎无法将更长的 VARCHAR2 传递给 Oracle超过〜4000。
另外,我试图尽可能减少 Oracle 和 SQL Server 之间的差异。
我可以采取哪些其他方法来超过 Oracle 和 SQL Server 中的 4,000 个限制。
编辑
我同意在许多情况下,4,000 个字符长的 SQL 查询是多余的,并且可能可以更好地重写,或者基础数据可能会从重组中受益。很多时候,给一些表起别名就足以让事情顺利进行。但我的目标是让任何有效的 SQL 查询通过我的应用程序返回与您通过 SQL Developer 等强大工具获得的结果相同的结果......因为这就是用户所说的,'不要告诉我我的查询写得不好,它在 $tool 中可以正常工作,但在你的中不起作用'
【问题讨论】:
-
仅供参考,当您提到 Microsoft 的产品时,我建议您使用术语“SQL Server”。 “MS SQL”不是产品名称,也容易与“My SQL”混淆。
-
@John - 谢谢。以后我会牢记这一点。
-
“建立一个要在服务器上执行的SQL字符串”:你的意思是动态的未参数化的SQL?
标签: .net sql sql-server oracle