小猪追火箭 2022-11-26 17:15 采纳率: 33.3%
浏览 9
已结题

向oracle中的数据表导入外部excle中的数据时日志文件一直显示‘数据文件的字段超出最大长度’

这是我创建的一个测试表

img

这是excle文件中的内容,后缀.csv

img

这是控制文件的内容
load data
infile 'D:\myoracle\xiaozhu.csv'
append into table "XIAOZHU"
fields terminated by ','(a char(10),b char(10),c char(10))

这里数据明明没超过规定数据类型的长度啊,但是为什么还是无法插入数据?

求解答

  • 写回答

1条回答 默认 最新

  • curating 2022-11-27 16: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

    img

    
    连接到:
    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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果