نحوه برطرف کردن خطای 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;
درباره این سایت