Oracle SQL Loader:FILLER数据文件中的字段超出最大长度

问题描述 投票:0回答:1

我需要通过SQL Loader将全部数据加载到Oracle数据库。

操作系统:RHEL

Oracle:12c

这是我的控制文件:

OPTIONS(SKIP=1)
LOAD DATA
CHARACTERSET UTF8
INFILE 'temp.dat' "STR '\",\"'"
BADFILE 'bad.dat'
TRUNCATE
INTO TABLE MY_TABLE
FIELDS TERMINATED BY ";"
(
PERSONNEL_NO    CHAR,
emp_name_f_r    FILLER,
LAST_NAME_RUS   CHAR,
FIRST_NAME_RUS  CHAR,
MIDDLE_NAME_RUS CHAR,
LAST_NAME_ENG   CHAR,
FIRST_NAME_ENG  CHAR,
emp_name_s_r    FILLER,
EMAIL   CHAR,
POSITION_NO CHAR,
POSITION_RUS    CHAR(300000),
emp_posname_s_r FILLER,
emp_orgid   FILLER,
emp_orgname_r   FILLER,
emp_orgref_r    FILLER,
emp_dirname_r   FILLER,
emp_pos_path_r  FILLER,
emp_org_path_r  FILLER,
ALIAS   CHAR,
emp_name_f_e    FILLER,
emp_name_s_e    FILLER,
POSITION_ENG    CHAR(300000)
)

我在日志中有很多这样的错误:

记录9:拒绝-表MY_TABLE的列错误EMP_POS_PATH_R。数据文件中的字段超过最大长度

您可以看到控制文件中的emp_pos_path_rFILLER。因此,我不需要将其加载到表中。我承认数据文件中此字段中的数据可能很长。

如何更改控制文件以将数据加载到数据库?

oracle sql-loader
1个回答
0
投票

char(和填充符)的默认最大长度为255,因此,如果您的填充符字段之一可以超过此长度,请在fillel关键字之前添加char(...)。 “ ...”是您拥有的最大值。

© www.soinside.com 2019 - 2024. All rights reserved.