用于在oracle中加载大量文件的脚本Shell

时间:2017-04-24 12:35:28

标签: oracle shell controlfile

我有很多日志文件,我想将它们插入表(oracle)。 最好的做法是什么?

所有日志如下所示。我的目录中有很多这样的文件。

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)

2 个答案:

答案 0 :(得分:0)

您需要循环来迭代所有树文件夹,然后您需要读取日志文件的每一行,然后为该行创建sql INSERT语句。这应该很容易,我没有一个Oracle实例来做一个例子,但尝试用这个提示来做。

答案 1 :(得分: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) )