Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以暂时禁用oracle存储过程中的触发器吗?_Oracle_Stored Procedures_Triggers - Fatal编程技术网

我可以暂时禁用oracle存储过程中的触发器吗?

我可以暂时禁用oracle存储过程中的触发器吗?,oracle,stored-procedures,triggers,Oracle,Stored Procedures,Triggers,我可以暂时禁用oracle存储过程中的触发器吗 示例(伪代码): 您可以使用EXECUTE IMMEDIATE语法通过动态SQL发出DDL,例如“ALTER TRIGGER”语句 以下是对此的描述: 如果愿意,也可以使用VARCHAR变量构建动态SQL: PROCEDURE myProcedure IS v_triggername VARCHAR2(30) := 'triggername'; BEGIN EXECUTE IMMEDIATE 'ALTER TRIGGER '||v_t

我可以暂时禁用oracle存储过程中的触发器吗

示例(伪代码):

您可以使用EXECUTE IMMEDIATE语法通过动态SQL发出DDL,例如“ALTER TRIGGER”语句

以下是对此的描述:

如果愿意,也可以使用VARCHAR变量构建动态SQL:

PROCEDURE myProcedure
IS
   v_triggername VARCHAR2(30) := 'triggername';
BEGIN
   EXECUTE IMMEDIATE 'ALTER TRIGGER '||v_triggername||' DISABLE';

   -- Do work

   EXECUTE IMMEDIATE 'ALTER TRIGGER '||v_triggername||' ENABLE';
EXCEPTION
   WHEN OTHERS
   THEN
      -- Handle Exceptions
END myProcedure;

如果您这样做,那么您还应该查看包DBMS_ASSERT以包装triggername并帮助强化代码以抵御SQL注入攻击。

@giuseppe小心:Alter trigger is ddl->它进行提交。
PROCEDURE myProcedure
IS
BEGIN
   EXECUTE IMMEDIATE 'ALTER TRIGGER triggername DISABLE';

   -- Do work

   EXECUTE IMMEDIATE 'ALTER TRIGGER triggername ENABLE';
EXCEPTION
   WHEN OTHERS
   THEN
      -- Handle Exceptions
END myProcedure;
PROCEDURE myProcedure
IS
   v_triggername VARCHAR2(30) := 'triggername';
BEGIN
   EXECUTE IMMEDIATE 'ALTER TRIGGER '||v_triggername||' DISABLE';

   -- Do work

   EXECUTE IMMEDIATE 'ALTER TRIGGER '||v_triggername||' ENABLE';
EXCEPTION
   WHEN OTHERS
   THEN
      -- Handle Exceptions
END myProcedure;