为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: V8.1
【操作系统】:Window 2012 Server(测试机,非生产环境)
【CPU】: Intel至强
【问题描述】*:动态SQL多语句,最后Select无法返回结果,报错:无效的EXECUTE语句。测试SQL如下:
declare
$value varchar(100);
$str_sql varchar(500);
begin
set $str_sql =
'declare ' || char(10) ||
' $id_card varchar(18) = ''310222197010273026''; ' || char(10) ||
' $name varchar(10) = ''张三'';' || char(10) ||
'begin ' || char(10) ||
' update A01 set A0184 = $id_card, A0101 = $name where PersonId = ''571496538a97110b4cf1b995'';' || char(10) ||
' select PersonId from A01 where A0184 = $id_card;' || char(10) ||
'end;';
print $str_sql;
execute immediate $str_sql into $value;
select $value;
end;
动态SQL返回结果,只能有一个Select语句,这个限制太大。一般情况下,都是多语句做了很多处理,最后做一个Select返回
补充:如果不加into,则动态SQL可以执行