2015-09-24 37 views
0

我有一個問題,目前我的加載.CSV文件到甲骨文的SQL數據庫加載的.csv通過CMD線文件導入到SQL神諭開發

我使用SQLLDR

我有了很多的Excel文件在它的股票信息,我會給你一個什麼樣子

 Tdate  Symbol Open  High Low  Close  Volume 
     19500103  SPX  16.66 16.66 16.66 16.66  1260000 
     19500104  SPX  16.85 16.85 16.85 16.85  1890000 
     19500105  SPX  16.93 16.93 16.93 16.93  2550000 

Tdate,符號,開放,高,低,收盤水平及成交量的心不是在.csv文件中的示例我只是把它放在那裏,因爲我的數據庫表將使用這些名稱來保存這些值。

我創造了我的表在SQL Developer中

create table cts (tdate date, symbol varchar(20), open numeric (18,8), high numeric (18,8), low (numeric 18,8), close numeric (18,8) , volume int) ; 

於是我打開了一個記事本文件,並創建了這個

LOAD Data infile c:\cts.dump.csv 

到表CTS

fields terminated by "," optionally enclosed by '"' 
(tdate, symbol, open, high, low , close, volume) 

我將它保存爲loaderval.ctl在文件夾c:\ data

我然後繼續打開我的cmd窗口,然後輸入

sqlldr username/password control=c:\data\loaderval.ctl 

我將收到一個64行一直致力於這是不可能的,因爲該文件有噸,噸的數據。然後我檢查我的數據庫,表格是空的。 我還收到一個.BAD文件和文件.BAD從第一對夫婦的Excel工作表中的列有記錄

(19500103,SPX,16.66,16.66,16.66,16.66,1260000 
19500104,SPX,16.85,16.85,16.85,16.85,1890000 
19500105,SPX,16.93,16.93,16.93,16.93,2550000 
19500106,SPX,16.98,16.98,16.98,16.98,2010000 
19500109,SPX,17.08,17.08,17.08,17.08,2520000 
19500110,SPX,17.03,17.03,17.03,17.03,2160000 
19500111,SPX,17.09,17.09,17.09,17.09,2630000 
19500112,SPX,16.76,16.76,16.76,16.76,2970000 
19500113,SPX,16.67,16.67,16.67,16.67,3330000 
19500116,SPX,16.72,16.72,16.72,16.72,1460000 
19500117,SPX,16.86,16.86,16.86,16.86,1790000 
19500118,SPX,16.85,16.85,16.85,16.85,1570000 
19500119,SPX,16.87,16.87,16.87,16.87,1170000 
19500120,SPX,16.90,16.90,16.90,16.90,1440000 
19500123,SPX,16.92,16.92,16.92,16.92,1340000 
19500124,SPX,16.86,16.86,16.86,16.86,1250000 
19500125,SPX,16.74,16.74,16.74,16.74,1700000 
19500126,SPX,16.73,16.73,16.73,16.73,1150000 
19500127,SPX,16.82,16.82,16.82,16.82,1250000 
19500130,SPX,17.02,17.02,17.02,17.02,1640000 
19500131,SPX,17.05,17.05,17.05,17.05,1690000 
19500201) 

請幫助:)

+0

我忘了提我使用SQLLDR! – linyu21

+1

Hi @ linyu21,你可以編輯問題的詳細信息,以添加此信息。 –

回答

0

閱讀代碼似乎日期列可能成爲這裏的罪魁禍首。您可以查看以下鏈接如何處理日期SQL裝載機

https://oracle-base.com/articles/12c/sql-loader-enhancements-12cr1

LOAD DATA 
INFILE c:\cts.dump.csv 
INTO TABLE CTS 
FIELDS CSV WITH EMBEDDED 
    (tdate DATE "YYYYDDMM" ":tdate", 
    symbol, 
    open, 
    high, 
    low, 
    close, 
    volumn) 

$ sqlldr userid=userid/[email protected]_string control=test.ctl 
+0

我看到格式必須是DD-MON-YYYY?我如何改變我的代碼?我是否必須爲日期創建具有特定格式的新表格? – linyu21

+0

您不需要創建一個新表格。你需要改變你的控制文件。一旦我有一點空閒,我會給出語法。 –

+0

也確認日期格式,我已根據您提供的樣本值進行了處理。 –