日期:2014-05-16  浏览次数:21450 次

sqlldr加载成功但是无法查询到数据
创建一个表:
create table CRMPORT
(
USERNAME VARCHAR2(100),
ADDRESS VARCHAR2(300),
ACCOUNTNAME VARCHAR2(30),
TELENTUNM VARCHAR2(10),
RATE NUMBER(8,2),
INSTALLTIME DATE
)

在D盘创建两个文件如下:
D:\data.txt
内容:  
用户1^address1^ad1480^5876241^1024^2002-10-7 0:00
用户2^address2^ad1482^5821211^1025^2002-10-7 0:00
用户3^address2^ad1482^5821211^1025^2002-10-7 0:00

D:\load.ctl
内容:
LOAD DATA
infile 'D:data.txt'
INTO TABLE CRMPORT
REPLACE
FIELDS TERMINATED BY "^"
(USERNAME,ADDRESS,ACCOUNTNAME,TELENTUNM,RATE,INSTALLTIME)

在cmd运行如下
C:\Documents and Settings\Administrator>sqlldr userid=scott/oracle@orcl control=
D:\load.ctl

SQL*Loader: Release 10.2.0.1.0 - Production on 星期六 5月 28 22:20:48 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

达到提交点 - 逻辑记录计数 2
达到提交点 - 逻辑记录计数 3

第一次在书上看到sqlldr加载方法、我在表中没有找到导入的数据。不知道上面的运行结果是不是说明数据已经导入到表中。
请各位高手帮我看下,到底是那里出错的。


------解决方案--------------------
1、你的导入是不成功的,错误原因可以查看load.log,被拒绝的数据可以查看load.bad
2、导入不成功的原因是,installtime日期格式是不系统默认的日期格式,你需要显示指定格式。
控制文件load.ctl修改后如下:

LOAD DATA
infile 'D:data.txt'
INTO TABLE CRMPORT
REPLACE
FIELDS TERMINATED BY "^"
(USERNAME,ADDRESS,ACCOUNTNAME,TELENTUNM,RATE,INSTALLTIME date 'yyyy-mm-dd hh24:mi')