为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM 8
【操作系统】:WIN 10
【CPU】:
【问题描述】*:
不废话,直接上图!
这个是我自定义的函数exec_sql,执行后会返回执行的结果。
这个是正常执行
这个是执行最简单的sql,可以发现没问题
这个是用我自定义函数执行稍微复杂一点点的sql
可以很明显的发现,执行的时候把sql中间的空格无差别全部删了,那这个方法用起来还有什么意义?有办法可以让他不去掉那个空格或者还有其他的函数吗?
你要动态执行的查询语句返回多个字段,而 EXECUTE IMMEDIATE 只有一个接收变量,实际上已经异常了
你可以测试一下
DECLARE V_RET VARCHAR2(32767); BEGIN --这句正常 EXECUTE IMMEDIATE 'SELECT ''A''' INTO V_RET; PRINT(V_RET); --这句报错 EXECUTE IMMEDIATE 'SELECT ''A'',''B''' INTO V_RET; PRINT(V_RET); END;