0

我试图将一些记录上传到我的表中ABC。没有记录通过,它们都显示在.bad日志中。

我对 sqlldr 很陌生。不太清楚我在哪里搞砸了。让我告诉你我采取的步骤。

首先,我创建了一个名为ABC.

 create table abc
    (
      location_id varchar2(10),
      sold_month date,
      item_name varchar2(30),
      company_id varchar2(10),
      qty_sold number(10),
      total_revenue number(14,3),
      promotional_code varchar2(10)
    );

这是我的平面文件abcflat.dat。这些列对应于上表中的列。

"1000","02/01/1957","Washing Machine","200011","10","10000","ABCDE"
"1000","05/02/2013","Computer","200012","5","5000","ABCDE"
"1000","05/01/2013","Bolt","200010","100","500","ABCDE"
"1000","05/03/2013","Coca Cola","200011","1000","1000","ABCDE"

这是我的控制文件abc.ctl

LOAD DATA
INFILE 'C:\Users\Public\abcflat.dat'
INTO TABLE ABC
FIELDS TERMINATED BY "," 
enclosed by '"'
(
Location_ID
, Sold_month
, item_name
, Company_id
, QTY_Sold
, Total_revenue
, Promotional_Code
)

我的最后一步

sqlldr hr/open@xe control=c:\users\public\abc.ctl

它说

Commit point reached - logical record count 3
Commit point reached - logical record count 4

但是我的 ABC 表上没有任何记录。

谢谢你

4

1 回答 1

1

这很可能是日期格式,试试这个:

LOAD DATA
INFILE 'C:\Users\Public\abcflat.dat'
INTO TABLE ABC
FIELDS TERMINATED BY "," 
enclosed by '"'
(
Location_ID
, Sold_month DATE "DD/MM/YYYY"
, item_name
, Company_id
, QTY_Sold
, Total_revenue
, Promotional_Code
)
于 2013-09-18T16:24:11.407 回答