导入不同字符集的数据
2005-01-19 14:11
246 查看
如下操作在 windows 下进行------------------------
把 Data_A 数据库的 *.DMP 文件导入到 Data_B 数据库。
导入时出错:
-(Error)----------------------------------------------------------------------------------
IMP-00016: required character set conversion (type 31 to 852) not supported
IMP-00000: Import terminated unsuccessfully
-------------------------------------------------------------------------------------------
查看所对应的字符集:
SQL> select nls_charset_name('31') from dual;
NLS_CHARSET_
------------
WE8ISO8859P1
SQL> select nls_charset_name('852') from dual;
NLS_CHAR
--------
ZHS16GBK
================================================================
Data_A -> Data_B
思路: 修改 Data_B 库的字符集为 "31" -> 导入数据 -> 恢复为 "852"
字符集修改: 是 修改数据字典;修改注册表 两步.
强烈提醒:
-------------------------------------------------------------------------------------------
1.先对当前数据库进行备份,再导入新的数据。以防在导入过程中产生意外。
2.由于字符集的不同,数据不一定可以完全进行使用。
-------------------------------------------------------------------------------------------
具体做法:
1.修改 Data_B 库的字符集.
1.1 修改注册表
"HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE" 中的 "NLS_LANG" 键值
"SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 改成 "American_America.WE8ISO8859P1"
注意: 根据安装的不同,主要用{Oracle 库的HOME}目录
目录也许为: "HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0" <- (HOME1,HOME2...)
视 注册表 里为准.
1.2 修改 数据字典
SQL>CONNECT sys/chanet@oradb;
SQL>UPDATE sys.props$
SET value$='WE8ISO8859P1' WHERE name='NLS_CHARACTERSET';
SQL>UPDATE sys.props$
SET value$='WE8ISO8859P1' WHERE name='NLS_NCHAR_CHARACTERSET';
SQL>commit;
1.3 重启Oracle库"服务"
2. 导入数据库.(imp....)
3. 修改会之前的 "852" 字符集.
3.1 修改数据字典.
SQL>CONNECT sys/chanet@oradb;
SQL>UPDATE sys.props$
SET value$='ZHS16GBK' WHERE name='NLS_CHARACTERSET';
SQL>UPDATE sys.props$
SET value$='ZHS16GBK' WHERE name='NLS_NCHAR_CHARACTERSET';
SQL>commit;
3.2 修改注册表.
"HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE" 中的 "NLS_LANG" 键值
"American_America.WE8ISO8859P1" 改回 "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
3.3 重启数据库 "服务"
把 Data_A 数据库的 *.DMP 文件导入到 Data_B 数据库。
导入时出错:
-(Error)----------------------------------------------------------------------------------
IMP-00016: required character set conversion (type 31 to 852) not supported
IMP-00000: Import terminated unsuccessfully
-------------------------------------------------------------------------------------------
查看所对应的字符集:
SQL> select nls_charset_name('31') from dual;
NLS_CHARSET_
------------
WE8ISO8859P1
SQL> select nls_charset_name('852') from dual;
NLS_CHAR
--------
ZHS16GBK
================================================================
Data_A -> Data_B
思路: 修改 Data_B 库的字符集为 "31" -> 导入数据 -> 恢复为 "852"
字符集修改: 是 修改数据字典;修改注册表 两步.
强烈提醒:
-------------------------------------------------------------------------------------------
1.先对当前数据库进行备份,再导入新的数据。以防在导入过程中产生意外。
2.由于字符集的不同,数据不一定可以完全进行使用。
-------------------------------------------------------------------------------------------
具体做法:
1.修改 Data_B 库的字符集.
1.1 修改注册表
"HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE" 中的 "NLS_LANG" 键值
"SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 改成 "American_America.WE8ISO8859P1"
注意: 根据安装的不同,主要用{Oracle 库的HOME}目录
目录也许为: "HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0" <- (HOME1,HOME2...)
视 注册表 里为准.
1.2 修改 数据字典
SQL>CONNECT sys/chanet@oradb;
SQL>UPDATE sys.props$
SET value$='WE8ISO8859P1' WHERE name='NLS_CHARACTERSET';
SQL>UPDATE sys.props$
SET value$='WE8ISO8859P1' WHERE name='NLS_NCHAR_CHARACTERSET';
SQL>commit;
1.3 重启Oracle库"服务"
2. 导入数据库.(imp....)
3. 修改会之前的 "852" 字符集.
3.1 修改数据字典.
SQL>CONNECT sys/chanet@oradb;
SQL>UPDATE sys.props$
SET value$='ZHS16GBK' WHERE name='NLS_CHARACTERSET';
SQL>UPDATE sys.props$
SET value$='ZHS16GBK' WHERE name='NLS_NCHAR_CHARACTERSET';
SQL>commit;
3.2 修改注册表.
"HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE" 中的 "NLS_LANG" 键值
"American_America.WE8ISO8859P1" 改回 "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
3.3 重启数据库 "服务"
相关文章推荐
- SQL SERVER 从Excel导入数据时不同语言字符集的比较问题
- 在不同字符集的数据库之间导入数据的方法
- Oracle不同字符集数据导入技术点滴
- oracle 10g 字符集不同的库之间的数据导入导出问题
- Oracle 字符集不同数据导入的方法(实战经验)
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 利用SQL脚本导入数据到不同数据库避免重复的3种方法
- Unicode 字符集下不同类型数据下的转换
- IMP导入数据到不同表空间
- oracle通过impdp导入不同表用户、不同表空间的数据
- MYSQL 导入数据的几种不同
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- oralce 导入数据中文乱码-设置字符集
- 考试系统维护--不同版本SQL数据导入导出
- 如何将不同类型数据导入Elaticsearch中?
- 不同服务器的数据库的数据导入
- 不同字符集数据库导数据
- C#+ArcEngine 不同格式数据打开,对象创建,导入导出
- mongdb在不同服务器下_数据的导入导出,mongdb_创建索引的语句
- E中打开不同格式数据,创建要素等,导入导出等