报错信息为:“”已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 导出客户机使用 AL32UTF8 字符集 (可能的字符集转换) 导出服务器使用 UTF8 NCHAR 字符集 (可能的 ncharset 转换)
正在将对XXX的对象导入到CCC..
imp00017:由于oracle错误922,以下语句失败;”
在windows10的机器本地安装的ORACLE 数据库,并从Linux环境下载下来数据库dmp文件解压后利用imp命令导入报错,由于数据库解压后28G,首先怀疑解压工具问题,重复换多种解压工具依旧不行,从网上搜各类帖子,解决办法均未解决问题,找身边大拿同事帮忙排查问题。经过多轮查询排查后,找到原因为:生成数据库dmp文件的数据库服务器编码为AL32UTF8;
数据库服务器自查:
第一:
env | grep NLS
第二:
数据库的编码为ZHS16GBK;
splplus
conn / as sysdba
select * from NLS_database_parameters;
而我本地win0 的机器编码为ZHS16GBK,
cmd进入:
C:\Users\Administrator>echo %NLS_LANG%
本地数据库编码为ZHS16GBK。
select * from NLS_database_parameters;
输入set NLS_LANG=AMERICAN_AMERICA.AL32UTF8;
重新倒库成功。
把解决办法分享给大家,希望可以帮到遇到同样问题的人。