是否可以在oracle单元测试启动时禁用oracle触发器
我们有一个表,它有一个用于将行写入不同数据库的触发器,我们不希望在单元测试期间执行该触发器。是否有办法在启动和拆除期间禁用并重新启用触发器 在刚起步的时候,我试过是否可以在oracle单元测试启动时禁用oracle触发器,oracle,unit-testing,oracle-sqldeveloper,Oracle,Unit Testing,Oracle Sqldeveloper,我们有一个表,它有一个用于将行写入不同数据库的触发器,我们不希望在单元测试期间执行该触发器。是否有办法在启动和拆除期间禁用并重新启用触发器 在刚起步的时候,我试过 BEGIN ALTER TRIGGER CAMMS_DATA.TR_CO_DTL_AI DISABLE; END; 并获取错误 Startup User PL/Sql Code (1/4) failed: ORA-06550: line 4, column 5: PLS-00103: Encountered the s
BEGIN
ALTER TRIGGER CAMMS_DATA.TR_CO_DTL_AI DISABLE;
END;
并获取错误
Startup User PL/Sql Code (1/4) failed: ORA-06550: line 4, column 5:
PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
只能使用
executeimmediate
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER CAMMS_DATA.TR_CO_DTL_AI DISABLE';
END;
但是请注意,DDL还意味着自动提交,您不能在匿名块中运行DDL。尝试不使用begind和end语句,或者如果必须这样做,请使用EXECUTE IMMEDIATE。尝试此操作时,我得到一个pls-00101遇到符号end错误。如果我放一个;在它结束时,我得到ora-00933命令没有正确结束