【发布时间】:2021-06-09 11:27:17
【问题描述】:
我们有一个平面文件,我们正尝试使用 SQL*Loader 将其加载到 Oracle 19c 表中,但是对于 CHAR(2) 字段之一,它失败并出现“多字节字符错误”。我们知道这是一个垃圾值,但我们仍然必须将它加载到数据库中。数据库字符集为 AL32UTF8。
我们试图加载的值是一个块元素:U+2592 ▒ Medium shade
我们尝试在 SQL*Loader 控制文件中使用 UTF-8,但仍然面临同样的问题。任何建议如何进行?
命令:
sqlldr $connection parfile=SCHEMA.TABLE.par
错误:
Record 1: Rejected - Error on table SCHEMA.TABLE, column COL2.
Multibyte character error.
COLUMN info :COL2 CHAR(2) NOT NULL ENABLE
参数文件内容:
data=filename.dat
control=SCHEMA.TABLE.ctl
log=SCHEMA.TABLE.log
bad=SCHEMA.TABLE.bad
控制文件内容:
OPTIONS (BINDSIZE=20000000,READSIZE=10485760,ROWS=10000,DIRECT=FALSE,ERRORS=50)
LOAD DATA
CHARACTERSET 'AL32UTF8'
DISCARDMAX 100
REPLACE PRESERVE BLANKS INTO TABLE SCHEMA.TABLE
TRAILING NULLCOLS
(
COL1 POSITION(1:15) "NVL(:COL1,' ')",
COL2 POSITION(16:17) "NVL(:COL2,' ')"
)
文件字符集:
filename.dat: text/plain; charset=utf-8
操作系统:GNU/Linux
【问题讨论】:
标签: oracle sql-loader