Oracle: alle Constraints einer Tab auf Disable

Hallo,
ich wollte mal wissen, ob es
möglich ist, via Script oder Function oder am besten einfachen SQL-Befehl
alle Constraints einer Tabelle auf „Disable“ zu setzen.

Momentan mache ich das so:
Alter Table addon_wpstamm
disable CONSTRAINT SYS_C001072

Für die Vielzahl an Constraints ist das aber ziemlich mühsam, außerdem heißen die Constraints komischerweise auf unserer Testumgebung anders, als auf der Integrationsumgebung…

Keine Ahnung warum…

Aber gibt es eine Möglichkeit, alle Constraints einer Tabelle auf Disable zu setzen?

Gruß
Sina

Hallo Sina,

man sollte schon beim Erstellen von Constraints darauf achten, daß sie einen eindeutigen sprechenden Namen bekommen, und das nicht dem System überlassen, dann entstehen diese „SYS“-Namen.
Das Deaktivieren von Constraints mache ich immer per Script, das man sich mit SQL-Plus in etwa so (habe gerade keine Datenbank hier :wink:, also ohne Gewähr) generieren lassen kann:

spool test.sql
select 'alter table '||table\_name||' disable constraint '||constraint\_name||';' from user\_contraints where table\_name=(TABELLENNAME);
spool off

In der test.sql müßten dann Deine benötigten Befehle stehen, moglicherweise noch etwas mehr, da mußt du wahrscheinlich noch mit ein paar Optionen experimentieren, wenn SQL-Plus zu geschwätzig ist.
Vielleicht gibt es „modernere“ Möglichkeiten mit dem Enterprise-Manager?
Gruß, Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
hey, das ist ja cool mit dem spool…
hat ja fantastisch funktioniert.
Mußte noch kleinere Änderungen vornehmen und
schon habe ich ein kleines Skript :smile:

So funktionierts:

spool test.sql
select 'alter table '||table\_name||' disable constraint
'||constraint\_name||';' from user\_constraints where
table\_name=('TABELLENNAME');
spool off

Vielen Dank

Sina