prog:sql_enable_constraints_wiht_errors
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
prog:sql_enable_constraints_wiht_errors [2012/04/24 09:38] – gpipperr | prog:sql_enable_constraints_wiht_errors [2015/09/23 20:30] (aktuell) – [Workaround enable novalidate] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Constraint Error ORA-02298 beim Enablen eines Constraints protokollieren ====== | ||
+ | |||
+ | Ist ein Constraint im Status " | ||
+ | Haben sich aber inzwischen Fehler in den Daten eingeschlichen läßt sich der Constraint nicht mehr einschalten. | ||
+ | \\ | ||
+ | Fehler: | ||
+ | <code sql> | ||
+ | |||
+ | ORA-02298: cannot validate(string.string) - parent keys not found | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Lösung: | ||
+ | |||
+ | == Error Log Tabelle auf Constaint Level verwenden: == | ||
+ | |||
+ | Anlegen der Error Log Tabelle mit dem Hilfescript\\ | ||
+ | $ORACLE_HOME/ | ||
+ | |||
+ | <code sql> | ||
+ | create table exceptions(row_id | ||
+ | owner varchar2(30), | ||
+ | table_name | ||
+ | constraint | ||
+ | ) | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Auf dem Constaint die Exception Tabelle aktivieren ( Keyword EXCEPTIONS INTO < | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | ALTER TABLE PRODUKTE ENABLE constraint FK_LAGERORT_PRODUKT EXCEPTIONS INTO EXCEPTIONS; | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Die Tabelle auswerten: | ||
+ | |||
+ | <code sql> | ||
+ | select row_id from exceptions where CONSTRAINT=' | ||
+ | |||
+ | row_id | ||
+ | -------- | ||
+ | xxxxxxxxxxxxxxxxxx | ||
+ | </ | ||
+ | |||
+ | Mit Hilfe der Row_id kann nun der entsprechende " | ||
+ | |||
+ | === Workaround " | ||
+ | |||
+ | Alternativ mit "alter table t enable <fc # | ||
prog/sql_enable_constraints_wiht_errors.txt · Zuletzt geändert: 2015/09/23 20:30 von gpipperr