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