C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr\datas1.txt'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期一 4月 10 16:35:20 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-601:  对于 INSERT 选项, 表必须为空。表 STUDENT 上出错

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr\datas1.txt'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期一 4月 10 16:36:38 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-601:  对于 INSERT 选项, 表必须为空。表 STUDENT 上出错

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr\datas1.txt'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期一 4月 10 16:37:52 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

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

C:\Users\jenkin>

----执行没有成功

---add log

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr\datas2.txt' log='

C:\Users\jenkin\Desktop\img\sqlldr\log.txt'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期一 4月 10 17:05:05 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

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

C:\Users\jenkin>

--查看log信息

SQL*Loader: Release 11.2.0.1.0 - Production on 星期一 4月 10 17:05:05 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

控制文件:      C:\Users\jenkin\Desktop\img\sqlldr\loadctl.txt

为全部输入指定了字符集 UTF8。

数据文件:      C:\Users\jenkin\Desktop\img\sqlldr\datas2.txt

错误文件:    bad.txt

废弃文件:    未作指定

(可废弃所有记录)

要加载的数: ALL

要跳过的数: 0

允许的错误: 50

绑定数组: 64 行, 最大 256000 字节

继续:    未作指定

所用路径:       常规

表 STUDENT,已加载从每个逻辑记录

插入选项对此表 APPEND 生效

列名                        位置      长度  中止 包装数据类型

------------------------------ ---------- ----- ---- ---- ---------------------

SNO                                 FIRST     *   ,       CHARACTER

SNAME                                NEXT     *   ,       CHARACTER

SSEX                                 NEXT     *   ,       CHARACTER

SBIRTHDAY                            NEXT     *   ,       DATE yyyy-mm-dd hh24:mi:ss

SCLASS                               NEXT     *   ,       CHARACTER

记录 1: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

记录 2: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

记录 3: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

记录 4: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

记录 5: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

记录 6: 被拒绝 - 表 STUDENT 的列 SNO 出现错误。

ORA-12899: 列 "solgle"."STUDENT"."SNO" 的值太大 (实际值: 4, 最大值: 3)

表 STUDENT:

0 行 加载成功。

由于数据错误, 6 行 没有加载。

由于所有 WHEN 子句失败, 0 行 没有加载。

由于所有字段都为空的, 0 行 没有加载。

为绑定数组分配的空间:                 82560 字节 (64 行)

读取   缓冲区字节数: 1048576

跳过的逻辑记录总数:          0

读取的逻辑记录总数:             6

拒绝的逻辑记录总数:          6

废弃的逻辑记录总数:        0

从 星期一 4月  10 17:05:05 2017 开始运行

在 星期一 4月  10 17:05:05 2017 处运行结束

经过时间为: 00: 00: 00.13

CPU 时间为: 00: 00: 00.03

----原ctl文件定义

load data

CHARACTERSET UTF8

infile 'datas1.txt'

badfile 'bad.txt'

append into table student

fields terminated by ','

(sno,

sname,

ssex,

sbirthday date "yyyy-mm-dd hh24:mi:ss",

sclass)

----更改后定义

load data

infile 'datas1.txt'

badfile 'bad.txt'

append into table student

fields terminated by ','

(sno "trim(:sno)",

sname "trim(:sname)",

ssex "trim(:ssex)",

sbirthday date "yyyy-mm-dd hh24:mi:ss",

sclass "trim(:sclass)")

---还是报错

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadct2.txt' logfile='C:\Users\jenkin\Desktop\img\sqlldr\log.txt'

LRM-00101: 未知的参数名 'logfile'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期二 4月 11 10:01:32 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-100:  命令行语法错误

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr\datas2.txt' log='

C:\Users\jenkin\Desktop\img\sqlldr\log.txt'

SQL*Loader: Release 11.2.0.1.0 - Production on 星期二 4月 11 10:02:53 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

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

C:\Users\jenkin>

---查看log信息 (日期格式不对)

记录 1: 被拒绝 - 表 STUDENT 的列 SBIRTHDAY 出现错误。

ORA-01861: 文字与格式字符串不匹配

---算了这个数据还是让sqlldr自己导出来一份看看是怎么样的

C:\Users\jenkin>sqluldr2 solgle/******@guard query="select * from student" tab

le="student" file="C:\Users\jenkin\Desktop\img\sqlldr\datas3.txt"

0 rows exported at 2017-04-11 10:28:52, size 0 MB.

6 rows exported at 2017-04-11 10:28:52, size 0 MB.

output file C:\Users\jenkin\Desktop\img\sqlldr\datas3.txt closed at 6 r

ows, size 0 MB.

C:\Users\jenkin>

----该语句导出还要区分单引号和双引号,此处只能用单引号才不会报错

----看数据导出结果:

108,曾华,男,1977-09-01 00:00:00,95033

105,匡明,男,1975-10-02 00:00:00,95031

107,王丽,女,1976-01-23 00:00:00,95033

101,李军,男,1976-02-20 00:00:00,95033

109,王芳,女,1975-02-10 00:00:00,95031

103,陆君,男,1974-06-03 00:00:00,95031

----看来该数据居然是这样的,每一条记录后面却没有分割符,时间也没有连接在一起。

----再作调整

C:\Users\jenkin>sqluldr2 parfile=C:\Users\jenkin\Desktop\img\sqlldr\outctl.txt q

uery="select * from student" table="student" file="C:\Users\jenkin\Desktop\img\s

qlldr\datas3.txt"

0 rows exported at 2017-04-11 10:49:33, size 0 MB.

6 rows exported at 2017-04-11 10:49:33, size 0 MB.

output file C:\Users\jenkin\Desktop\img\sqlldr\datas3.txt closed at 6 r

ows, size 0 MB.

C:\Users\jenkin>

---outctl文件内容

user=solgle/******@guard

charset=AL32UTF8

record=0x0d0x0a

alter=set nls_date_format='yyyymmddhh24miss';

---导出数据格式如下

108,曾华,男,19770901000000,95033

105,匡明,男,19751002000000,95031

107,王丽,女,19760123000000,95033

101,李军,男,19760220000000,95033

109,王芳,女,19750210000000,95031

103,陆君,男,19740603000000,95031

---可惜了,仍然没有成功。...原因不是字符宽度越界,就是在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)...

---再次尝试导出数据

C:\Users\jenkin>sqluldr2 parfile=C:\Users\jenkin\Desktop\img\sqlldr\outctl.txt q

uery="select * from student" table="student" file="C:\Users\jenkin\Desktop\img\s

qlldr\datas3.txt" head=yes

0 rows exported at 2017-04-11 11:35:44, size 0 MB.

6 rows exported at 2017-04-11 11:35:44, size 0 MB.

output file C:\Users\jenkin\Desktop\img\sqlldr\datas3.txt closed at 6 r

ows, size 0 MB.

---parfile文件内容如下

user=solgle/******@guard

charset=AL32UTF8

record=0x0d0x0a

alter=set nls_date_format='yyyymmdd';

---数据导出结果

SNO,SNAME,SSEX,SBIRTHDAY,SCLASS

118,曾华,男,19770901,95033

115,匡明,男,19751002,95031

117,王丽,女,19760123,95033

111,李军,男,19760220,95033

119,王芳,女,19750210,95031

113,陆君,男,19740603,95031

----再次更新控制文件再导入

load data

CHARACTERSET UTF8

infile 'datas1.txt'

badfile 'bad.txt'

append into table student

fields terminated by ','

(sno,sname,ssex,sbirthday date "yyyy-mm-dd",sclass)

----执行

C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\im

g\sqlldr\loadctl.txt' log='C:\Users\jenkin\Desktop\img\sqlldr\log.txt' data='C:\

Users\jenkin\Desktop\img\sqlldr\datas3.txt' skip=1 rows=2

SQL*Loader: Release 11.2.0.1.0 - Production on 星期二 4月 11 12:54:27 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

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

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

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

C:\Users\jenkin>

---日志信息

表 STUDENT:

6 行 加载成功。

由于数据错误, 0 行 没有加载。

由于所有 WHEN 子句失败, 0 行 没有加载。

由于所有字段都为空的, 0 行 没有加载。

为绑定数组分配的空间:                  2580 字节 (2 行)

读取   缓冲区字节数: 1048576

跳过的逻辑记录总数:          1

读取的逻辑记录总数:             6

拒绝的逻辑记录总数:          0

废弃的逻辑记录总数:        0

从 星期二 4月  11 12:54:27 2017 开始运行

在 星期二 4月  11 12:54:27 2017 处运行结束

经过时间为: 00: 00: 00.11

CPU 时间为: 00: 00: 00.05

---经验证,数据导入成功

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐