ORA-30926 오류 해결 방법 (문서 ID 471956.1)
1) 실패한 진술을 식별
세션 세트 이벤트 변경 '30926 추적 이름 오류 스택 레벨 3';
또는
시스템 세트 이벤트 변경 '30926 추적 이름 errorstack off';
UDUMP에서 .trc 파일이 있는지 확인하십시오.
2) SQL 문을 찾은 경우, 명령문이 올바른지 확인하고 (아마도 Explain Plan 또는 tkprof를 사용하여 조회 실행 계획을 점검) 최근에 수행되지 않은 경우 관련 테이블에서 통계를 분석하거나 계산하십시오. 인덱스를 다시 작성 (또는 삭제 / 다시 작성)해도 도움이 될 수 있습니다.
3.1) SQL 문이 MERGE입니까? USING 절에 의해 리턴 된 데이터를 평가하여 결합에 중복 값이 없는지 확인하십시오. 결정적인 where 절을 포함하도록 merge 문을 수정하십시오.
3.2) 뷰를 통한 UPDATE 문입니까? 그렇다면 뷰 결과를 테이블에 채우고 테이블을 직접 업데이트하십시오.
3.3) 테이블에 트리거가 있습니까? 여전히 실패하는지 확인하려면 비활성화하십시오.
3.4) 명령문에 'IN-Subquery'에서 병합 불가능한 뷰가 포함되어 있습니까? 쿼리에 "FOR UPDATE"절이 있으면 중복 행이 반환 될 수 있습니다. 버그 2681037 참조
3.5) 테이블에 사용되지 않은 열이 있습니까? 이를 삭제하면 오류를 방지 할 수 있습니다.
4) SQL을 수정해도 오류가 해결되지 않으면 특히 체인 행이있는 경우 테이블에 문제가있을 수 있습니다. 4.1) SQL에 사용 된 모든 테이블에서 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE'문을 실행하여 테이블 또는 인덱스에 손상이 있는지 확인하십시오. 4.2) 테이블에서 CHAINED 또는 마이그레이션 된 ROWS를 확인하고 제거합니다. PCTFREE의 올바른 설정과 같이이를 최소화하는 방법이 있습니다. 사용 참고 122020.1-행 체인 및 마이그레이션 4.3) 테이블이 추가로 인덱스 구성 인 경우 참고 : 102932.1-IOT에서 체인 행 모니터링