Oracle管理

sqlldr数据导入导出案例

时间:2017-4-11 12:53:51  作者:www.solgle.com  来源:solgle.com  查看:1353  评论:0
内容摘要:C:\Users\jenkin>sqlldr solgle/******@guard control='C:\Users\jenkin\Desktop\img\sqlldr\loadctl.txt' data='C:\Users\jenkin\Desktop\img\sqlldr...
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
 
---经验证,数据导入成功
 
 
标签:sqlldr sqluldr2 数据导入导出 

solgle.com 版权所有,欢迎分享!!!

上一篇:没有了
下一篇:SQL Loader的使用详解
相关文章
    相关评论
       Copyright © 2013-2020 solgle.com,All rights reserved.[solgle.com] 公安机关备案号:51010802000219
    Email:solgle@solgle.com; weixin:cd1008610000 ICP:蜀ICP备14011070号-1