oracle - Oracle SQL Loader:数据文件中的 FILLER 字段超过最大长度
问题描述
我需要通过 SQL Loader 将大量数据加载到 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
在控制文件中。所以我不需要把它加载到桌子上。我承认数据文件的这个字段中可能有很长的数据。
我应该如何更改控制文件以将数据加载到数据库?
解决方案
char(和填充符)的默认最大长度为 255,因此如果您的填充符字段之一可以超过此长度,请在填充符关键字之前添加 char(...)。'...' 是您拥有的最大值。
推荐阅读
- ldap - 无法创建新条目。PHPLDAP管理员
- android - 如何将当前数据从设置活动传递到火力基地
- javascript - firebase.auth().signInWithPopup() 不适用于 Linux/Mac 上的 Chrome 扩展
- python - Python paramiko chdir 不起作用。getcwd() 返回无
- android - Android AppAuth 将密码发送到 Chrome 选项卡
- sql - Hue 无法加载 Presto Schema dbc 不存在
- python - 与第二页不同的页面模板
- raspberry-pi3 - Raspberry pi 3 B 通过 RTSP (Wifi) 与无线 IP 摄像头连接
- php - 从 db (Codeigniter) 加载页面信息的重定向
- docker - 尝试连接到 Redis 会返回 ECONNREFUSED