Oracle SQL 加载程序:数据文件中的 FILLER 字段超过最大长度
Oracle SQL Loader: FILLER Field in data file exceeds maximum length
我需要通过 SQL 加载程序将大量数据加载到 Oracle 数据库。
OS:RHEL
甲骨文: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)
)
我在日志中有很多这样的错误:
Record 9: Rejected - Error on table MY_TABLE, column
EMP_POS_PATH_R. Field in data file exceeds maximum length
如您所见,emp_pos_path_r
在控制文件中是 FILLER
。所以我不需要将它加载到 table。我承认在数据文件中这个字段可能有一个很长的数据。
如何更改控制文件以将数据加载到数据库?
char(和填充符)的默认最大长度为 255,因此如果您的填充字段之一可以超过此长度,请在填充关键字前添加 char(...)。 '...' 是您拥有的最大值。
甲骨文 11gR2
我通过在 FILLER 关键字后添加 CHAR(4000) 解决了这个问题。您可以根据字符串的长度更改大小。
我需要通过 SQL 加载程序将大量数据加载到 Oracle 数据库。
OS:RHEL
甲骨文: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)
)
我在日志中有很多这样的错误:
Record 9: Rejected - Error on table MY_TABLE, column EMP_POS_PATH_R. Field in data file exceeds maximum length
如您所见,emp_pos_path_r
在控制文件中是 FILLER
。所以我不需要将它加载到 table。我承认在数据文件中这个字段可能有一个很长的数据。
如何更改控制文件以将数据加载到数据库?
char(和填充符)的默认最大长度为 255,因此如果您的填充字段之一可以超过此长度,请在填充关键字前添加 char(...)。 '...' 是您拥有的最大值。
甲骨文 11gR2
我通过在 FILLER 关键字后添加 CHAR(4000) 解决了这个问题。您可以根据字符串的长度更改大小。