Discuz教程网

求助 sql loader 导入 excel 错误

[复制链接]
authicon 飞飞 发表于 2010-10-26 09:49:23 | 显示全部楼层 |阅读模式

desc employees
名称                             空值       类型                                                                                                                                                                                            
------------------------------ -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EMPLOYEE_ID                             NUMBER(6)                                                                                                                                                                                    
FIRST_NAME                              VARCHAR2(20)                                                                                                                                                                                 
LAST_NAME                               VARCHAR2(25)                                                                                                                                                                                 
PHONE_NUMBER                            VARCHAR2(25)                                                                                                                                                                                 
HIRE_DATE                               DATE                                                                                                                                                                                          
JOB_ID                                  VARCHAR2(10)                                                                                                                                                                                 
SALARY                                  NUMBER(8,2)                                                                                                                                                                                   
COMMISSION_PCT                          NUMBER(2,2)                                                                                                                                                                                   
MANAGER_ID                              NUMBER(6)                                                                                                                                                                                    
DEPARTMENT_ID                           NUMBER(4)                                                                                                                                                                                    
Load data
Infile 'c:\Book1.csv'
insert into table employees fields terminated by ','(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID)
Sqlldr userid = test/test control='C:\test.ctl'
错误日志
SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 10月 20 13:26:52 2010
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
控制文件:      c:\test.ctl
数据文件:      c:\Book1.csv
  错误文件:    c:\Book1.bad
  废弃文件:    未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续:    未作指定
所用路径:       常规
表 EMPLOYEES,已加载从每个逻辑记录
插入选项对此表 INSERT 生效
   列名                        位置      长度  中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
EMPLOYEE_ID                         FIRST     *   ,       CHARACTER            
FIRST_NAME                           NEXT     *   ,       CHARACTER            
LAST_NAME                            NEXT     *   ,       CHARACTER            
PHONE_NUMBER                         NEXT     *   ,       CHARACTER            
HIRE_DATE                            NEXT     *   ,       CHARACTER            
JOB_ID                               NEXT     *   ,       CHARACTER            
SALARY                               NEXT     *   ,       CHARACTER            
COMMISSION_PCT                       NEXT     *   ,       CHARACTER            
MANAGER_ID                           NEXT     *   ,       CHARACTER            
DEPARTMENT_ID                        NEXT     *   ,       CHARACTER            
记录 1: 被拒绝 - 表 EMPLOYEES 的列 EMPLOYEE_ID 出现错误。
ORA-01722: 无效数字
记录 2: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 3: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 4: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 5: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 6: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 7: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 8: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 9: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 10: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 11: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 12: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 13: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 14: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 15: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 16: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 17: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 18: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 19: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 20: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 21: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 22: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 23: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 24: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 25: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 26: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 27: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 28: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 29: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 30: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 31: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 32: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 33: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 34: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 35: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 36: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 37: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 38: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 39: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 40: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 41: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 42: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 43: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 44: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 45: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 46: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 47: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 48: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 49: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 50: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
记录 51: 被拒绝 - 表 EMPLOYEES 的列 HIRE_DATE 出现错误。
ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
超过最大错误数 - 以上统计信息反映部分运行结果。
表 EMPLOYEES:
  0 行 加载成功。
  因为数据错误, 51 行 没有加载。
  因为所有 WHEN 子句失败, 0 行 没有加载。
  因为所有字段都为空的, 0 行 没有加载。
为绑定数组分配的空间:                165120 字节 (64 行)
读取   缓冲区字节数: 1048576
跳过的逻辑记录总数:          0
读取的逻辑记录总数:            64
拒绝的逻辑记录总数:         51
废弃的逻辑记录总数:        0
从 星期三 10月 20 13:26:52 2010 开始运行
在 星期三 10月 20 13:26:52 2010 处运行结束
经过时间为: 00: 00: 00.17
CPU 时间为: 00: 00: 00.02
   本人第一次用这个,高手讲解一下。



上一篇:如何提高查询速度
下一篇:Oracle图形化管理工具Navicat的配置方法
authicon renxiao2003 发表于 2010-10-26 10:02:53 | 显示全部楼层

把你的ctl文件帖出来大家帮你分析一下。
authicon duolanshizhe 发表于 2010-10-26 10:48:57 | 显示全部楼层

两个问题:
1、excel中对应数据库表employee的employee_id列中存在非数字信息,请纠正。
2、对于excel中有日期行的字段时,在ctl中需要特殊定义:例如
HIREDATE DATE 'YYYYMMDD'  或者   HIREDATE DATE 'YYYY-MM-DD'
不然就会解析存在问题!
authicon renxiao2003 发表于 2010-10-26 11:39:37 | 显示全部楼层

回复 3# duolanshizhe
    很好。分析得太正确了。你现在是不是也搞O呢。
  其实再看看他的文件也行。呵呵。(好长时间不搞O了)
authicon duolanshizhe 发表于 2010-10-26 12:58:12 | 显示全部楼层

恩    3年前玩过   现在很久没有这种需求过  不过当时还是做了些了解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 21:48

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表