2013-04-05 5 views
0

나는 proceudre를 작성 중이며 SQL 삽입 쿼리 성공 상태의 일부 로깅을 시도합니다. 오류 로그 테이블에 ERR 삽입을 쓰는 방법에 대한 단서가 없습니다.오라클 오류 처리

insert into TableA (select * from TableB); 
commit; 

**if (show ERR <> NULL) 
insert into TableErr** 

누구든지 나를 어떻게 할 수 있습니까? 검색을 시도하지만 어떤 키를 찾을 지 모르겠 음

+0

블록으로 묶어야합니다. 도움이되는지 확인 [link] http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/07_errs.htm – Elmer

답변

1

SQL을 사용하여 대량 데이터를로드하는 경우 PL/SQL에서 오류를 처리하는 고전적인 접근 방법과 마찬가지로 오류 처리 테이블을 사용할 것을 고려하십시오.

워드 프로세서

:

당신이 에러가 발생했을 경우, 서브 쿼리와 INSERT 문을 사용하여 테이블을로드 http://docs.oracle.com/cd/E11882_01/server.112/e17120/tables004.htm#InsertDMLErrorLogging는 문을 종료하고 다시 전체 롤백됩니다. 이는 시간과 시스템 자원 낭비 일 수 있습니다. 이러한 INSERT 문에 대해서는 DML 오류 로깅 기능을 사용하여이 상황을 피할 수 있습니다.

가 DML 오류 로깅을 사용하려면 데이터베이스 레코드 오류가 DML 작업 중 발생되는 오류 로깅 테이블의 이름을 지정하는 문 절을 추가합니다. 이 오류 로깅 절을 INSERT 문에 추가하면 특정 유형의 오류가 발생하지 않으므로 문을 더 이상 종료하고 롤백 할 수 없습니다. 대신 각 오류는 이고 기록이 계속됩니다. 나중에 잘못된 행을 에서 정정 조치를 취하십시오.