日期:2014-05-18  浏览次数:20987 次

动态生成Oracle触发器
为什么用C# 动态生成的触发器编译通不过,同样的代码,放到 PL/SQL里可以编译通过,


很简单的触发器,测试一下
SQL code

CREATE OR REPLACE TRIGGER "TRG_T_QUERY_CONDITION_DEF" BEFORE
INSERT ON "T_QUERY_CONDITION_DEF" FOR EACH ROW
BEGIN
NULL;
END;



但第一次编辑的时候显示 这个错误

SQL code

TRIGGER ZJJCJG.TRG_T_QUERY_CONDITION_DEF 编译错误

错误:PLS-00103: 出现符号 ""在需要下列之一时:
        begin case declare exit for
          goto if loop mod null pragma raise return select update while
          with <an identifier> <a double-quoted delimited-identifier>
          <a bind variable> << close current delete fetch lock insert
          open rollback savepoint set sql execute commit forall merge
          pipe
行:3
文本:BEGIN




------解决方案--------------------
貌似需要用EXECUTE IMMEDIATE执行