Tip #22: 2 SQL*Plus Scripts zur Verwaltung von Constraints. (Type

Werbung
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.
Herunterladen