今天在使用sqlldr导入中文列遇到了一些奇怪的问题,现在让我来重现一下。
ctl文件为:
LOAD DATA
INFILE 'test.csv'
INTO TABLE hzw2.t11
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(
姓名,
身份证号,
姓名二
)
创建表的过程略!!!
sqlldr执行导入
这里的报错是说非字母数字字符的非法组合,那我们要怎么办呢?重新建表将中文改为英文?那可能不太现实!
修改ctl文件,修改后的文件如下:
LOAD DATA
INFILE 'test.csv'
INTO TABLE hzw2.t11
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(
"姓名",
"身份证号",
"姓名二"
)
现在我们在来重新导入一下
成功导入了,下班?那是不可能的!
进入数据库查询一下刚刚导入的表
这是什么情况啊啊啊,排除Xshell显示的问题,因为列名的中文可以正常显示,那就要想其他办法喽~
再次修改ctl文件,修改后的文件如下:
LOAD DATA
CHARACTERSET ZHS16GBK
INFILE 'test.csv'
INTO TABLE hzw2.t11
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(
"姓名",
"身份证号",
"姓名二"
)
```powershell
在这里插入代码片
导入过程略!我们再来查询一下数据库中的表~
sqlldr导入中文完美解决!