DECLARE
CURSOR trigger_cursor IS
SELECT TRIGGER_NAME FROM DBA_TRIGGERS WHERE OWNER = 'ECOLOGY_TARGET';
v_trigger_name VARCHAR(255);
BEGIN
OPEN trigger_cursor;
LOOP
FETCH trigger_cursor INTO v_trigger_name;
EXIT WHEN trigger_cursor%NOTFOUND;
BEGIN
EXECUTE IMMEDIATE 'ALTER TRIGGER ' || v_trigger_name || ' ENABLE;';
EXCEPTION
WHEN OTHERS THEN
-- 处理禁用触发器时发生的异常
DBMS_OUTPUT.PUT_LINE('Error disabling trigger ' || v_trigger_name || ': ' || SQLERRM);
-- 如果需要,可以在这里将错误记录到日志表中
END;
END LOOP;
CLOSE trigger_cursor;
EXCEPTION
WHEN NO_DATA_FOUND THEN
-- 这个异常实际上在这个特定的代码块中不太可能发生,
-- 因为我们已经在LOOP中检查了trigger_cursor%NOTFOUND
NULL; -- 可以不做任何处理
WHEN OTHERS THEN
-- 处理在匿名块级别可能发生的任何其他异常
DBMS_OUTPUT.PUT_LINE('An unexpected error occurred: ' || SQLERRM);
-- 如果需要,可以在这里将错误记录到日志表中
END;
/
01-15
1444
12-15
1706
09-22
4357