【发布时间】:2020-04-19 13:44:58
【问题描述】:
我需要通过 SQL 加载器将大量数据加载到 Oracle 数据库。
操作系统: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)
)
我在 LOG 中有很多这样的错误:
记录 9:被拒绝 - 表 MY_TABLE 列上的错误 EMP_POS_PATH_R。数据文件中的字段超过最大长度
正如您在控制文件中看到的emp_pos_path_r 是FILLER。所以我不需要把它加载到桌子上。我承认数据文件中这个字段可能有很长的数据。
我应该如何更改控制文件以将数据加载到数据库中?
【问题讨论】:
标签: oracle sql-loader