Oracle执行动态ALTER TRIGGER报错ORA-00940:无效命令求助
问题原因及解决方法
问题出在动态SQL的字符串拼接缺少空格,导致生成的SQL语句语法不合法。
你的代码拼接后实际生成的SQL是:
ALTER TRIGGERarticle_comment_auditENABLE
Oracle无法识别这种连在一起的关键字和对象名,因此抛出ORA-00940错误。
修复方法
在拼接字符串时,给关键字和变量之间添加空格:
declare v_trg_name varchar2(25) := 'article_comment_audit'; begin execute immediate 'ALTER TRIGGER ' || v_trg_name || ' ENABLE'; end;
注意ALTER TRIGGER末尾加空格,ENABLE开头加空格,这样生成的SQL就会是合法的格式:
ALTER TRIGGER article_comment_audit ENABLE
内容的提问来源于stack exchange,提问作者Yulia P
相关产品推荐
相关产品推荐

