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

如何通过SQL Loader仅加载CSV指定列至数据库表?

解决SQL Loader仅加载指定列、忽略CSV多余数据的方法

你的问题出在CSV列数多于控制文件定义的列时,SQL Loader会自动把多余列的数据按顺序填充到表中未定义的列里。要解决这个问题,只需要在控制文件里用FILLER关键字标记多余的列,让SQL Loader读取但不加载这些数据即可。

具体修改方案

情况1:知道CSV多余列的数量

如果明确CSV里除了你需要的4列外还有N列,直接在控制文件末尾添加对应数量的FILLER定义:

Options (ERRORS=100000,SKIP=1)
Load data
Append
Into table emp
Fields terminated by ',' optionally enclosed by '"'
Trailing Nullcols
(
Emp_id char,
Dept char,
Class integer,
Subclass integer,
-- 多余列标记为FILLER,不加载到表中
extra_col1 FILLER char,
extra_col2 FILLER char -- 有几个多余列就加几个
)

情况2:不确定多余列的数量

如果CSV的多余列数量不固定,用一个FILLER吸收所有剩余列的数据:

Options (ERRORS=100000,SKIP=1)
Load data
Append
Into table emp
Fields terminated by ',' optionally enclosed by '"'
Trailing Nullcols
(
Emp_id char,
Dept char,
Class integer,
Subclass integer,
-- 吸收所有剩余列的数据,不加载
remaining_data FILLER char
)

原理说明

FILLER是SQL Loader的专用关键字,作用是声明某列仅用于读取CSV数据,但不会将其插入到目标表中。这样无论CSV有多少多余列,都会被这些FILLER定义“吃掉”,不会影响到emp表中原本需要保持为空的列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:40:27