Bagaimana Mengatasi Masalah Kesalahan ORA-30926? (Doc ID 471956.1)
1) Identifikasi pernyataan gagal
mengubah sesi set peristiwa '30926 nama jejak kesalahan tingkat 3';
atau
ubah set sistem acara '30926 trace name errorstack off';
dan perhatikan file .trc di UDUMP ketika itu terjadi.
2) Setelah menemukan pernyataan SQL, periksa apakah itu benar (mungkin menggunakan menjelaskan rencana atau tkprof untuk memeriksa rencana eksekusi permintaan) dan menganalisis atau menghitung statistik pada tabel yang bersangkutan jika ini belum dilakukan. Indeks pembangunan kembali (atau menjatuhkan / menciptakan kembali) juga dapat membantu.
3.1) Apakah pernyataan SQL MERGE? mengevaluasi data yang dikembalikan oleh klausa USING untuk memastikan bahwa tidak ada nilai duplikat dalam bergabung. Ubah pernyataan gabungan untuk memasukkan klausa deterministik di mana
3.2) Apakah ini pernyataan UPDATE melalui tampilan? Jika demikian, coba populasikan hasil tampilan ke dalam tabel dan coba perbarui tabel secara langsung.
3.3) Apakah ada pemicu di atas meja? Coba nonaktifkan untuk melihat apakah masih gagal.
3.4) Apakah pernyataan tersebut mengandung tampilan yang tidak dapat digabungkan dalam 'Sub-Sub -eri'? Ini dapat menghasilkan baris duplikat yang dikembalikan jika kueri memiliki klausa "UNTUK DIPERBARUI". Lihat Bug 2681037
3.5) Apakah tabel memiliki kolom yang tidak digunakan? Menjatuhkan ini dapat mencegah kesalahan.
4) Jika memodifikasi SQL tidak menyembuhkan kesalahan, masalahnya mungkin dengan tabel, terutama jika ada baris dirantai. 4.1) Jalankan pernyataan 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE' pada semua tabel yang digunakan dalam SQL untuk melihat apakah ada korupsi dalam tabel atau indeksnya. 4.2) Periksa, dan hilangkan, setiap BARIS RANTAI atau dimigrasi di atas meja. Ada beberapa cara untuk meminimalkan ini, seperti pengaturan PCTFREE yang benar. Gunakan Catatan 122020.1 - Perangkaian Baris dan Migrasi 4.3) Jika tabel tersebut tambahan Indeks Terorganisir, lihat: Catatan 102932.1 - Memantau Baris Dirantai pada IOT