这是我创建的一个测试表
这是excle文件中的内容,后缀.csv
这是控制文件的内容
load data
infile 'D:\myoracle\xiaozhu.csv'
append into table "XIAOZHU"
fields terminated by ','(a char(10),b char(10),c char(10))
这里数据明明没超过规定数据类型的长度啊,但是为什么还是无法插入数据?
求解答
这是我创建的一个测试表
这是excle文件中的内容,后缀.csv
这是控制文件的内容
load data
infile 'D:\myoracle\xiaozhu.csv'
append into table "XIAOZHU"
fields terminated by ','(a char(10),b char(10),c char(10))
这里数据明明没超过规定数据类型的长度啊,但是为什么还是无法插入数据?
求解答
我的测试结果完全正常。看一下你的csv文件,估计是excel中设置了格式,保存文档有列超过了10位。
C:\Users\cdb>sqlldr control=test.ctl
用户名:/ as sysdba
SQL*Loader: Release 19.0.0.0.0 - Production on 星期日 11月 27 15:59:23 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
所用路径: 常规
达到提交点 - 逻辑记录计数 3
表 TEST:
已成功载入 3 行。
查看日志文件:
test.log
C:\Users\cdb>more <test.csv
2,3,4
3,4,5
4,5,6
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> create table test(a char(10),b char(10),c char(10));
表已创建。
SQL> desc test
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
A CHAR(10)
B CHAR(10)
C CHAR(10)
SQL> exit
从 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0 断开
C:\Users\cdb>more <test.csv
2,3,4
3,4,5
4,5,6
C:\Users\cdb>more <test.ctl
load data
infile 'C:\Users\cdb\test.csv'
append into table "test"
fields terminated by ','(a char(10),b char(10),c char(10))
C:\Users\cdb>sqlldr control=test.ctl
用户名:/ as sysdba
SQL*Loader: Release 19.0.0.0.0 - Production on 星期日 11月 27 15:59:23 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
所用路径: 常规
达到提交点 - 逻辑记录计数 3
表 TEST:
已成功载入 3 行。
查看日志文件:
test.log
了解有关加载的详细信息。
C:\Users\cdb>more <test.log
SQL*Loader: Release 19.0.0.0.0 - Production on 星期日 11月 27 15:59:23 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
控制文件: test.ctl
数据文件: C:\Users\cdb\test.csv
错误文件: test.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 250 行, 最大 1048576 字节
继续: 未作指定
所用路径: 常规
表 TEST,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
列名 位置 长度 中止 包装 数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
A FIRST 10 , CHARACTER
B NEXT 10 , CHARACTER
C NEXT 10 , CHARACTER
表 TEST:
已成功载入 3 行。
由于数据错误, 0 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空值, 0 行 没有加载。
为绑定数组分配的空间: 9000 字节 (250 行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 0
读取的逻辑记录总数: 3
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
从 星期日 11月 27 15:59:23 2022 开始运行
在 星期日 11月 27 15:59:27 2022 处运行结束
经过时间为: 00: 00: 04.06
CPU 时间为: 00: 00: 00.02
C:\Users\cdb>