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

使用SQL Loader加载大CSV至Oracle遇物理记录超长错误求助

解决SQL*Loader加载大CSV时的物理记录长度超限问题

问题核心

使用SQL*Loader直接路径加载15GB、5000万行的CSV文件时,出现SQL_Loader-510错误,提示物理记录长度超过默认最大值1048576字节,调整readsize和concatenate参数后无效。

原因分析

  • 直接路径加载模式下,readsize参数不生效,该参数仅适用于常规路径加载;
  • concatenate参数用于合并多条短物理记录,无法解决单条记录超长的问题;
  • 你提供的控制文件存在语法错误:class_code字段后缺少逗号,会导致字段解析异常。

解决方案

方案一:改用常规路径加载

移除控制文件中的direct=true,同时设置足够大的readsize参数适配最长记录:

options (skip=1, readsize=3000000)
LOAD DATA
INFILE 'text.csv'
BADFILE 'text.bad'
DISCARDFILE 'text.dsc'
INTO TABLE "user"."users_data"
insert
fields terminated by ',' Optionally enclosed by '"' TRAILING NULLCOLS
(
refnum,
parentrefnum,
refcode,
class_code, -- 补上缺失的逗号
full_address,
country,
city,
suburbs,
create_date,
update_date
)

执行命令示例:

sqlldr userid=用户名/密码@数据库 control=你的控制文件.ctl

方案二:直接路径下调整专属参数

若必须使用直接路径加载,通过direct_path_data_size参数增大允许的记录长度(该参数仅针对直接路径模式):

  • 控制文件修改:
options (skip=1, direct=true, direct_path_data_size=3000000)
LOAD DATA
INFILE 'text.csv'
BADFILE 'text.bad'
DISCARDFILE 'text.dsc'
INTO TABLE "user"."users_data"
insert
fields terminated by ',' Optionally enclosed by '"' TRAILING NULLCOLS
(
refnum,
parentrefnum,
refcode,
class_code, -- 补上缺失的逗号
full_address,
country,
city,
suburbs,
create_date,
update_date
)
  • 命令行指定参数:
sqlldr userid=用户名/密码@数据库 control=你的控制文件.ctl direct_path_data_size=3000000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:03:19