읽기, 거부 및 폐기된 데이터에 대한 CSV 통계

읽기, 거부 및 폐기된 데이터에 대한 CSV 통계

예를 들어, 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)도 필요합니다.

관련 정보