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

Oracle外部表使用FILLER关键字触发KUP报错问题求助

Oracle外部表使用FILLER关键字报错的原因及解决方法

问题重现

创建外部表时尝试用FILLER跳过不需要的字段,执行查询时报错,改用char类型占位则正常运行。创建语句如下:

create table etbl
(EMPLOYEE_ID number,
EMAIL varchar2(200),
SALARY number)
organization external 
(
type oracle_loader
default DIRECTORY dir1
access parameters
(
 records delimited by NEWLINE
 skip 1
 logfile 'log.txt'
 badfile 'emp.bad'
 fields terminated by ','
 optionally ENCLOSED by '"'
 MISSING field values are null
 (
 EMPLOYEE_ID char(200),
 FIRST_NAME FILLER,
 FILLER char(200),
 EMAIL char(200),
 FILLER char(200),
 FILLER char(200),
 FILLER char(200),
 SALARY char(200),
 FILLER char(200),
 FILLER  char(200),
 FILLER char(200)
 )
)
location ('emp.txt')
)
reject limit 10;

select * from etbl;

报错信息

KUP-01005: syntax error: found "identifier": expecting one of: "binary_double, binary_float, comma, char, convert_error, date, defaultif, decimal, double, float, integer, (, lls, lls_compat, no, nullif, oracle_date, oracle_number, position, raw, recnum, ), unsigned, varrawc, varchar, varraw, varcharc, zoned"

KUP-01008: the bad identifier was: FILLER

错误原因

外部表中FILLER的用法和SQL*Loader控制文件存在差异,核心错误有两点:

  1. 不能直接用FILLER作为字段名:FILLER是关键字,必须给每个要跳过的字段指定一个合法的自定义名称,再后跟FILLER关键字。
  2. FILLER字段必须指定数据类型:不能只写字段名 FILLER,必须像普通字段一样明确指定数据类型(比如char(200))。

修正后的创建语句

给每个跳过的字段赋予唯一自定义名称,同时指定FILLER关键字和对应数据类型:

create table etbl
(EMPLOYEE_ID number,
EMAIL varchar2(200),
SALARY number)
organization external 
(
type oracle_loader
default DIRECTORY dir1
access parameters
(
 records delimited by NEWLINE
 skip 1
 logfile 'log.txt'
 badfile 'emp.bad'
 fields terminated by ','
 optionally ENCLOSED by '"'
 MISSING field values are null
 (
 EMPLOYEE_ID char(200),
 FIRST_NAME FILLER char(200),
 SKIP_COL2 FILLER char(200),
 EMAIL char(200),
 SKIP_COL3 FILLER char(200),
 SKIP_COL4 FILLER char(200),
 SKIP_COL5 FILLER char(200),
 SALARY char(200),
 SKIP_COL6 FILLER char(200),
 SKIP_COL7 FILLER char(200),
 SKIP_COL8 FILLER char(200)
 )
)
location ('emp.txt')
)
reject limit 10;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:55:23