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

Oracle SQL*Loader处理NULL值:COLUMN6为空时插入COLUMN4值可行吗?

SQL*Loader实现NULL字段替换需求的方案

可以实现,SQL*Loader支持在字段映射中使用Oracle内置函数或表达式处理这类NULL值替换逻辑。只需修改控制文件中COLUMN6的定义,通过NVL函数(或CASE语句)实现当COLUMN6为NULL时复用COLUMN4的值。

修改后的完整控制文件:

OPTIONS (ROWS=1000, READSIZE=2097152, BINDSIZE=2097152, PARALLEL=TRUE)
LOAD DATA
INFILE '{INFILE}'
APPEND

INTO TABLE TABLE_NAME
WHEN FEED='FEED'
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(
COLUMN1  POSITION(1) DECIMAL EXTERNAL,
COLUMN2  CHAR(5),
COLUMN3  CHAR(11),
COLUMN4  CHAR(10),
COLUMN5  CHAR(30),
COLUMN6  CHAR(30) "NVL(:COLUMN6, :COLUMN4)"
)

关键说明:

  • 在COLUMN6的定义后添加双引号包裹的NVL(:COLUMN6, :COLUMN4)表达式,:COLUMN6和:COLUMN4是SQL*Loader对输入字段的引用格式。
  • NVL函数会判断:COLUMN6是否为NULL:如果是,则返回:COLUMN4的值;否则返回:COLUMN6本身。
  • 也可使用CASE语句实现相同逻辑,例如:"CASE WHEN :COLUMN6 IS NULL THEN :COLUMN4 ELSE :COLUMN6 END",效果完全一致。
  • TRAILING NULLCOLS参数会将输入行末尾缺失的字段设为NULL,确保NVL函数能正确触发替换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:35:27