2017-04-24 10 views
0

테이블 (오라클)에 로그 파일을 많이 넣고 싶습니다. 그렇게하는 것이 최선입니까?오라클에 많은 파일을로드하는 스크립트 셸

모든 로그는 아래와 같습니다. 내 디렉토리에는 이런 파일들이 많이 있습니다.

11/04/2017 12:00:02 11959 trt_ret_tp  START   Chargement des fichiers HREREC (trt_ret_tp) 

11/04/2017 12:00:02 11959 trt_ret_tp     Aucun fichier ▒ traiter 

11/04/2017 12:00:02 11959 trt_ret_tp     Mise a jour de la date de dernier recouvrement 

11/04/2017 12:02:42 11959 trt_ret_tp  STOP   Chargement des fichiers HREREC (trt_ret_tp) 
+0

만들기 1) 왜이 데이터베이스에 필요하고, 유닉스에있을 못하게? 2) 데이터베이스에 로그 값을 입력하려면 코드 수준이 변경되면 로그 형식이 변경 될 수 있으므로 코드 수준에서 수행하십시오. 3) 여전히'sqlloader'에 대해서 구글을하고 싶다면. – Utsav

+0

내가 보낸 답에 대해 당신의 의견을 말해 줄 수 있습니까? –

+0

dev 환경에서 실행 해보고 어떤 오류가 발생했는지 확인하십시오. – Utsav

답변

0

당신은 모든 나무의 폴더를 반복하는 루프를 필요로하고 당신은 로그 파일의 각 라인을 읽고 그 라인에 대한 SQL INSERT 문장을 작성해야합니다. 그건 쉬운 일 이겠지만, 예제를 만들 Oracle 인스턴스가 없지만이 힌트로 시도해보십시오.

+0

이 해결책이 맞습니까? –

0

이 해결책이 맞습니까?

테이블 CREATE TABLE "LOG_GAM_NOY" ("DATE", DATE NOT NULL ENABLE, "TIME", VARCHAR2(8) DATE NOT NULL ENABLE, "NUM_OF_PROCESS" NUMBER(8), "SHELL" VARCHAR2(20 BYTE), "EVENEMENT" VARCHAR2(20 BYTE), "LIBELE" VARCHAR2(200 BYTE), ) ;

제어 파일 OPTIONS LOAD DATA INFILE /donnees/gam/log/*.log INFILE /donnees/noyau/log/*.log REPLACE INTO TABLE LOG_GAM_NOY FIELDS TERMINATED BY X’9’
TRAILING NULLCOLS (DATE,TIME,NUM_OF_PROCESS,SHELL,EVENEMENT,LIBELE) )