参照整合性制約を無効化する。

個人的には、単体テスト時は参照整合性制約をはずしておいたほうが便利だと思う。


declare
cursor c_constraint is
select UC.TABLE_NAME, UC.CONSTRAINT_NAME from USER_CONSTRAINTS UC
where UC.OWNER='HOGE' and UC.CONSTRAINT_TYPE='R';
c_sql number;
begin
for r_constraint in c_constraint loop
DBMS_OUTPUT.PUT_LINE('disable ' || r_constraint.TABLE_NAME || '.' || r_constraint.CONSTRAINT_NAME);
c_sql := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c_sql, 'alter table ' || r_constraint.TABLE_NAME || ' disable constraint ' || r_constraint.CONSTRAINT_NAME, DBMS_SQL.NATIVE);
DBMS_SQL.CLOSE_CURSOR(c_sql);
end loop;
end;
/