วิธีแก้ไขข้อผิดพลาด ORA-30926 (รหัสเอกสาร 471956.1)
1) ระบุคำสั่งที่ล้มเหลว
แก้ไขเหตุการณ์ชุดเซสชัน '30926 ชื่อการติดตาม errorstack ระดับ 3';
หรือ
แก้ไขการตั้งค่าระบบเหตุการณ์ '30926 ชื่อการติดตาม errorstack off';
และดูไฟล์. trc ใน UDUMP เมื่อเกิดขึ้น
2) เมื่อพบคำสั่ง SQL ให้ตรวจสอบว่าถูกต้องหรือไม่ (อาจใช้อธิบายแผนหรือ tkprof เพื่อตรวจสอบแผนการดำเนินการสืบค้น) และวิเคราะห์หรือคำนวณสถิติในตารางที่เกี่ยวข้องหากยังไม่ได้ดำเนินการเมื่อเร็ว ๆ นี้ การสร้างดัชนีใหม่ (หรือทิ้ง / สร้างใหม่) อาจช่วยได้เช่นกัน
3.1) คำสั่ง SQL เป็นการผสานหรือไม่ ประเมินข้อมูลที่ส่งคืนโดย USING clause เพื่อให้แน่ใจว่าไม่มีค่าที่ซ้ำกันในการรวม แก้ไขคำสั่ง merge เพื่อรวมกำหนดโดยที่ clause
3.2) นี่คือคำสั่ง UPDATE ผ่านมุมมองหรือไม่? หากเป็นเช่นนั้นให้ลองใส่ผลลัพธ์มุมมองลงในตารางแล้วลองอัปเดตตารางโดยตรง
3.3) มีทริกเกอร์บนโต๊ะหรือไม่? ลองปิดการใช้งานเพื่อดูว่ายังล้มเหลวหรือไม่
3.4) คำสั่งมีมุมมองที่ไม่สามารถผสานได้ใน 'IN-Subquery' หรือไม่? ซึ่งอาจส่งผลให้มีการส่งคืนแถวที่ซ้ำกันหากแบบสอบถามมีอนุประโยค "FOR UPDATE" ดู Bug 2681037
3.5) ตารางมีคอลัมน์ที่ไม่ได้ใช้หรือไม่? การทิ้งสิ่งเหล่านี้อาจป้องกันข้อผิดพลาดได้
4) หากการปรับเปลี่ยน SQL ไม่สามารถแก้ไขข้อผิดพลาดได้ปัญหาอาจอยู่ที่ตารางโดยเฉพาะอย่างยิ่งหากมีแถวที่ถูกล่ามโซ่ 4.1) เรียกใช้คำสั่ง 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE' บนตารางทั้งหมดที่ใช้ใน SQL เพื่อดูว่ามีความเสียหายในตารางหรือดัชนีหรือไม่ 4.2) ตรวจหาและกำจัดแถวที่ถูกล่ามโซ่หรือย้ายข้อมูลบนโต๊ะ มีหลายวิธีในการย่อขนาดเช่นการตั้งค่า PCTFREE ที่ถูกต้อง ใช้หมายเหตุ 122020.1 - การเชื่อมโยงแถวและการโยกย้าย 4.3) หากตารางมีการจัดระเบียบดัชนีเพิ่มเติมโปรดดู: หมายเหตุ 102932.1 - การตรวจสอบแถวโซ่บน IOT