我是這樣做的,有更簡單的嗎?
CREATE OR REPLACE PROCEDURE "INVALID_ALL_TRIGGER"
AS
sql_str VARCHAR2(200);
BEGIN
DECLARE CURSOR CUR_TEMP
IS SELECT * FROM user_objects WHERE object_type='TRIGGER';
RS_REC CUR_TEMP%ROWTYPE;
BEGIN
OPEN CUR_TEMP;
FETCH CUR_TEMP INTO RS_REC;
WHILE CUR_TEMP%FOUND LOOP
sql_str:='alter ' || RS_REC.object_type|| ' ' ||RS_REC.object_name||' disable';
EXECUTE IMMEDIATE sql_str;
FETCH CUR_TEMP INTO RS_REC;
END LOOP;
CLOSE CUR_TEMP;
END;
END;
CREATE OR REPLACE PROCEDURE "INVALID_ALL_TRIGGER"
AS
sql_str VARCHAR2(200);
BEGIN
DECLARE CURSOR CUR_TEMP
IS SELECT * FROM user_objects WHERE object_type='TRIGGER';
RS_REC CUR_TEMP%ROWTYPE;
BEGIN
OPEN CUR_TEMP;
FETCH CUR_TEMP INTO RS_REC;
WHILE CUR_TEMP%FOUND LOOP
sql_str:='alter ' || RS_REC.object_type|| ' ' ||RS_REC.object_name||' disable';
EXECUTE IMMEDIATE sql_str;
FETCH CUR_TEMP INTO RS_REC;
END LOOP;
CLOSE CUR_TEMP;
END;
END;
select 'alter table ' ||OWNER||'.'||object_name|| ' disable;'
SPOOL OFF
@ON