2017-04-24 18 views
0

我有很多需要將它們插入到表(oracle)中的日誌文件。 什麼是最好的做法?用於在oracle中加載大量文件的腳本Shell

所有日誌如下所示。在我的目錄中有很多像這樣的文件。

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)你爲什麼需要這個數據庫,而不是讓它在Unix的? 2)如果你想在數據庫中輸入日誌值,那麼在代碼級別嘗試,如果這不是很困難,因爲日誌格式可以改變,如果你的代碼改變。 3)如果你仍然想這樣做,那麼谷歌關於'sqlloader'。 – Utsav

+0

你能給我你的意見,請給我發送的答案嗎? –

+0

嘗試在你的開發環境中運行它,看看你會得到什麼錯誤。 – 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) )

相關問題