通过CMD行将.CSV文件加载到ORACLES SQL Developer中

时间:2015-09-24 05:18:46

标签: sql oracle oracle-sqldeveloper sql-loader

我目前在将.CSV文件加载到Oracles 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

.CSV文件中的Tdate,symbol,open,high,low,close和volume isnt我只是把它放在那里因为我的数据库表将在这些名称下保存这些值。

我在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) 

我将它保存为文件夹c:\ data

中的loaderval.ctl

然后我继续打开我的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)

请帮助:)

1 个答案:

答案 0 :(得分:0)

查看代码似乎日期列可能是这里的罪魁祸首。您可以在下面查看如何处理sql loader日期的链接

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

ck