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

Oracle外部表加载报错KUP-04021/KUP-04026求助

Oracle外部表加载CSV时KUP-04021/KUP-04026报错解决方法

问题根源

从日志输出可明确:Oracle Loader默认给所有字段分配了CHAR(255)缓冲区,即便表中LONG_TEXT字段定义为CLOB,加载时仍会被限制在255字符长度内,直接触发KUP-04021(字段格式化错误)和KUP-04026(字段长度超过数据类型限制)报错。

解决方案

1. 显式指定CLOB字段类型

在外部表的ACCESS PARAMETERS字段列表中,必须显式声明LONG_TEXT为CHARACTER LARGE OBJECT(或简写CLOB),也可指定足够大的CHAR长度(如CHAR(32767)),覆盖默认的255字符限制。

修改后的建表语句示例:

create table test(
NAME varchar2(4000),
STATUS varchar2(4000),
LONG_TEXT CLOB)
ORGANIZATIONAL EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "TEST_DIRECT"
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
SKIP 1
FIELDS TERMINATED BY ','
MISSING FIELDS VALUES ARE NULL
(
NAME CHAR(4000),
STATUS CHAR(4000),
LONG_TEXT CHARACTER LARGE OBJECT
)
)LOCATION
('test.csv'
)
REJECT LIMIT UNLIMITED;

2. 处理含分隔符的长文本

若LONG_TEXT内容包含逗号(字段分隔符),需在ACCESS PARAMETERS中添加OPTIONALLY ENCLOSED BY '"'参数,确保被双引号包裹的含逗号文本不会被误解析为多个字段:

ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
SKIP 1
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
MISSING FIELDS VALUES ARE NULL
(
NAME CHAR(4000),
STATUS CHAR(4000),
LONG_TEXT CHARACTER LARGE OBJECT
)
)

验证

修改后重新加载数据,检查日志是否不再出现字段长度相关报错,确认长文本成功存入CLOB字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:46:11