Tip #22: 2 SQL*Plus Scripts zur Verwaltung von Constraints. (Type: SQL) Man steht vor dem Problem, Massendaten laden zu müssen und man erhält diese bekannten “constraint violation errors”. Nun m uss man herausfinden, in welcher Reihenfolge die Daten denn geladen werden müssen. Dieser Tipp beinhaltet ein paar Skripte, die verwendet werden können, um DISABLE, ENABLE, DROP, oder RECREATE aller Constraints in einem Schema durchzuführen. Diese zwei Skripte nutzen die Technik 'SQL Writing SQL' um wiederum Skripte zu erzeugen, die die entsprechenden Änderungen auf den “constraints“ durchführen. Dazu schaltet man alle externen SQL*Plus output parameter (wie feedback, headings, etc.) ab und selektiert dann “contraint names” und “table names” von der Tabelle USER_CONSTRAINT zusammen mit dem text, den das entsprechende SQL-Statement enthalten soll. set set set feed off pause off termout on sqln off hea off timing off sqlp ' ' echo off pages 0 spool c:\con_dis.sql -FKs first. select 'alter table ' || table_name || ' disable constraint ' || constraint_name || ';' from user_constraints where constraint_type = 'R' order by table_name, constraint_name ; Jedes der zwei SQL*Plus scripts generates zwei SQL ScriptsEines generiert SQL für DISABLE und ENABLE aller PK, FK und UNIQUE „constraints“ für das aktuelle Schema. Dies ermöglicht dann die “bulk data loads”. Das zweite Skript generiert Scripts für DROP und CREATE derselben „constraints“. Dies hilft, die Tabellen wieder in den ursprünglichen Zustand zu setzen.