问题描述
|
我有一个正在使用动态SQL查询的存储过程。
它有一个变量分配给(5000-6000个字符的动态sql),另一个变量分配给(5000-6000个字符的动态sql)
以及两个变量之间的UNION ALL。
我从过程中获得了动态查询,并在编辑器上运行了它。它给我返回了一行数据。如何调试此查询?
我可不可以做:
var1 = \"dyamic sql...\"
UNION ALL
var2 = \"dynamic sql...\"
任何帮助我调试此问题的建议将不胜感激。
解决方法
您可以运行动态查询(如果是该术语),但是不能以这种方式。您可以使用以下命令执行查询字符串
EXECUTE IMMEDIATE \'sqlstring\'
或使用
OPEN c FOR \'sqlstring\'
还有一个包,使您可以使用绑定的参数执行查询。
但是所有这些都要求查询是单个字符串,因此我建议您将两个查询放到第三个变量中……
var3 = var1 || \' UNION ALL \' || var2;
..然后执行var3。