|
|
|
|---|---|
|
Ausgangslage Ein beliebiges Constraint kann nicht aktiviert werden, da es die Constraint Regel verletzt. Die folgende Anleitung zeigt, wie die Row(s) gefunden werden können welche das Constraint verletzen. Beispiel
Tabelle: CREDIT (Master) Exception Table kreieren
CREATE TABLE except_table (row_id ROWID, Constraint Verletzung in except_table protokollieren
ALTER TABLE order_req ENABLE ORA-02298: cannot enable (PPB.FK_ORDER_REQ_CREDIT) - parent keys not found Rows, welche Constraint verletzen auslisten
SELECT DBMS_ROWID.ROWID_TO_RESTRICTED(ROWID,0) /* Oracle 8 */ SELECT row_id FROM except_table; /* Oracle 7 */
DBMS_ROWID.ROWID_T Finden der entsprechenden Rows in der Originaltabelle
SELECT TO_CHAR(create_date,'DD.MM.YYYY:HH24:MI:SS'),origin_id,ms_id
TO_CHAR(CREATE_DATE ORIGIN_ID MS_ID
SELECT TO_CHAR(create_date,'DD.MM.YYYY:HH24:MI:SS'),origin_id,ms_id
TO_CHAR(CREATE_DATE ORIGIN_ID MS_ID
SELECT TO_CHAR(create_date,'DD.MM.YYYY:HH24:MI:SS'),origin_id,ms_id
TO_CHAR(CREATE_DATE ORIGIN_ID MS_ID Finden der entsprechenden Master-Row in der Parenttabelle
SELECT TO_CHAR(create_date,'DD.MM.YYYY:HH24:MI:SS'),origin_id,ms_id no rows selected Löschen der rows in der Detailtabelle
DELETE FROM order_req
DELETE FROM order_req COMMIT; Constraint einschalten
ALTER TABLE order_req ENABLE |
|