You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Loader加载289150条数据时1条失败,请求排查原因

问题分析:SQL Loader加载单条记录失败

问题概述

通过SQL Loader加载约289150条记录时,仅1条记录插入失败,需判断是加载方式问题还是数据问题。

失败详情

  • 失败记录:
    200511734,"동발"사향만응고(ALL-MuschusPlaster),
    
  • 错误信息(原英文):no terminator found after TERMINATED and ENCLOSED field
  • 错误信息(中文翻译):在指定的终止符和包围符字段后未找到终止符

CTL文件内容

options(PARALLEL = TRUE, DIRECT = TRUE, skip=1)
UNRECOVERABLE LOAD DATA
APPEND INTO TABLE TEST_1234
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS

(
Item_serial_number char(1000),
Item_name char(4000)

)

原因判断及解决方案

原因:数据格式不符合CTL约定

这是数据问题,而非加载方式问题。

CTL文件中配置了OPTIONALLY ENCLOSED BY '"',意味着:

  • 字段可选择用双引号包围;
  • 若字段内部需出现双引号,必须用**连续两个双引号("")**转义,否则SQL Loader会将第一个双引号视为字段起始标记,直到找到下一个双引号才判定字段结束,之后再寻找逗号作为字段分隔符。

这条失败记录里的"동발"사향만응고...,字段内部的双引号未做转义,SQL Loader读到第一个"后,错误地将동발视为被包围的字段内容,后续的"사향만응고(ALL-MuschusPlaster)被当作无效内容,无法找到对应字段的终止逗号,最终触发报错。

解决方案

  1. 修正单条数据:将字段内的单个双引号替换为连续两个双引号,符合CSV格式规范。修正后记录示例:
    200511734,"동발""사향만응고(ALL-MuschusPlaster)",
    
    若业务上该字段无需整体用双引号包围,也可直接移除开头的双引号,修正为:
    200511734,동발"사향만응고(ALL-MuschusPlaster),
    
  2. 批量处理(若同类数据多):如果存在大量类似格式错误的记录,可通过脚本批量替换字段内的单个双引号为连续双引号后再加载。

内容的提问来源于stack exchange,提问作者rahul1234a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:25:05