نحوه برطرف کردن خطای ora-02437 cannot validate primary key violated


تاریخ انتشار: 1398/اردیبهشت/22
نویسنده:
گروه دانش : Oracle Datebase
تعداد بازدید: 32 مرتبه
اشتراک گذاری:

نحوه برطرف کردن خطای ora-02437 cannot validate primary key violated

 

لازم است کارهای زیر را به ترتیب انجام دهید:

 

@?/rdbms/admin/utlexpt1.sql

 

با اجرای دستور بالا، جدول EXCEPTIONS ایجاد می شود. (در اسکیمای sys)

**************************************************************

SQL> alter table MY_INFORMATIONS add constraint MY_TAB_PK primary key (COL1, COL2, COL3, COL4) exceptions into SYS.EXCEPTIONS;

select * from exceptions

 

حالا مشخصات سطرهایی که مشکل ایجاد کرده اند در جدول EXCEPTIONS وجود دارد.

**************************************************************

SQL> create table copy_cons as select * from MY_INFORMATIONS where rowid in (select ROW_ID from exceptions);

SQL> SELECT * FROM copy_cons

 

در این جدول اطلاعات کامل از سطرهایی که مشکل ایجاد کرده اند وجود دارد.

**************************************************************


SQL> delete MY_INFORMATIONS where rowid in (select ROW_ID from exceptions)

COMMIT;

 

با اجرای دستورات فوق، سطرهای مشکل دار از جدول مربوطه حذف می شوند.

**************************************************************

حالا می توانید با استفاده از دستور زیر کلید مورد نظرتان را بسازید:


SQL> alter table MY_INFORMATIONS add constraint MY_TAB_PK primary key (COL1, COL2, COL3, COL4);
 

**************************************************************

در نهایت می توانیم اطلاعات ایجاد شده را از دیتابیس حذف نماییم:

 
SQL> TRUNCATE TABLE EXCEPTIONS;

SQL> drop table copy_cons;