예를 들어, oracle sql 테이블에 9개의 열을 삽입하려고 합니다.
테이블 ACCOUNTREQUEST: 7개 행이 성공적으로 로드되었습니다. 2 데이터 오류로 인해 행이 로드되지 않았습니다.
오류 및 오류 이름을 계산하기 위해 echo.txt 또는 .log를 만들고 싶습니다. 나는 이것을 내 제어 데이터로 사용합니다.
LOAD DATA
INFILE 'csv_accountrequest.csv'
BADFILE 'bad_accountrequest.bad'
APPEND INTO TABLE AccountRequest
FIELDS TERMINATED BY "," TRAILING NULLCOLS
(requestid "request_id_interval.nextval", branch, account_type, title, firstname, lastname, Birthday Date "dd/mm/yyyy", workphone, homephone, address, state, zip, email,status)
내 CSV로 가져오세요.
1,manila,SAVINGS,MR,Alpha,Bravo,01/02/2000,21313,213,kor,north,3232,[email protected],Entered
2,japan,CURRENT,MR,Charlie,Delta,02/03/2001,21313,213,kor,north,3232,[email protected],Approved
3,indo,CURRENT,MS,Echo,Foxtrot,03/04/2002,21313,213,kor,north,3232,[email protected],Entered
4,MY,SAVINGS,MR,Golf,Hotel,04/05/2003,21313,213,kor,north,3232,[email protected],Entered
5,SG,CURRENT,MRS,India,Juliet,05/06/2004,21313,213,kor,north,3232,[email protected],Approved
6,china,CURRENT,MS,Kilo,Lima,06/07/2005,21313,213,kor,north,3232,[email protected],Entered
7,turkey,CURRENT,MR,Mike,November,07/08/2006,21313,213,kor,north,3232,[email protected],Entered
8,chile,CURRENT,MRsr,Mike,November,07/08/2006,21313,213,kor,north,3232,[email protected],rejected
9,poland,CURRENTs,MR,Mike,November,07/08/2006,21313,213,kor,north,3232,[email protected],Entered
SQLLDR을 통해,
이건 내 잘못이야. 텍스트
Record 8: Rejected - Error on table ACCOUNTREQUEST.
ORA-02290: check constraint (HR.CHK_TITLE) violated
Record 9: Rejected - Error on table ACCOUNTREQUEST.
ORA-02290: check constraint (HR.CHK_ACCOUNTS) violated
Table ACCOUNTREQUEST:
7 Rows successfully loaded.
2 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
성공적으로 로드된 라인 수를 계산하기 위해 쉘 스크립트를 사용하고 싶습니다.
로드되지 않는 이유와 그 이유(기록 8 및 9에 언급됨)
추신. (MR,MRS,MS)를 헤더로, (SAVINGS,CURRENT)를 계정 유형으로만 허용하는 제한으로 인해 데이터가 삽입되지 않았습니다.
쉘 스크립트를 통해 거부 횟수를 계산할 수 있었습니다.
grep -wc "rejected" txtsample.txt
하지만 이를 error.log에 반영할 수 없으므로 오류 원인(예: 로그 8 및 9)도 필요합니다.