当前位置: 代码迷 >> Oracle管理 >> 请教执行EXECUTE IMMEDIATE语句时为什么会显示无效字符呢?据说是语法有关问题,没看出来
  详细解决方案

请教执行EXECUTE IMMEDIATE语句时为什么会显示无效字符呢?据说是语法有关问题,没看出来

热度:146   发布时间:2016-04-24 04:08:50.0
请问执行EXECUTE IMMEDIATE语句时为什么会显示无效字符呢?据说是语法问题,没看出来啊
DECLARE
  ddl_string VARCHAR2(100);
  BEGIN
    xux_cycl_inst_bill(ddl_string);  --调用的一个过程,ddl_string为出参,是一个DML语句
    DBMS_OUTPUT.PUT_LINE('STRING:'||ddl_string);--这里可以打印出来正确信息
    EXECUTE IMMEDIATE ddl_string;     --这里就报错
END;

错误: 0RA-009111 invalid character
------解决思路----------------------
ddl_string 这个定西返回的时候,里面不要带分号。

--正确
execute immediate 'insert into t(a) values(1)';
--错误
execute immediate 'insert into t(a) values(1);';




------解决思路----------------------
引用:
ddl_string 这个定西返回的时候,里面不要带分号。
SQL code

--正确
execute immediate 'insert into t(a) values(1)';
--错误
execute immediate 'insert into t(a) values(1);';


基本上就是这个。
  相关解决方案