Oracle 字符集不同数据导入的方法(实战经验)

来源:互联网 发布:如何设置windows外观 编辑:程序博客网 时间:2024/05/22 05:27

一偶然的机会,遇到这样一个问题,因HIS与医保共用一台服务器,在做新医院时,HIS服务器是单独一台机子,就想导入数据来加快实施进度,但在导入数据时遇到了问题。


问题如下:


1、用服务器管理工具无法导入备份文件,提示的错误不足以找到原因。


2、手工导入时,执行到要求输入“缓冲区大小时”,只要一输入值,就自动退出,无法找到真实原因。


3、在PL/SQL DEV 中,导入数据时,在日志窗口中找到原因,无法完成字符集850到852的转换。


找到上述原因后,找了相关人员,给了论坛上相关字符集的处进方法,但都没有人具体使用过,只有按上面提示一步一步操作,步骤如下:


1、网上下载文件修改工具(UEDIT32)。


2、安装并运行上述软件,并打开DMP文件,把第二个和第三个字节,进行修改。


3、运行注册表编辑器,找到当前数据库的字符集,如:zhs16gbk或AMERICAN_AMERICA.ZHS16CGB231280。在PL/SQL DEV中,运行此语句:select nls_charset_id('zhs16gbk') from dual; 查出当前值为852,对应的十六进制为03 54。select nls_charset_id('AMERICAN_AMERICA.ZHS16CGB231280') from dual;查出当前值为850,对应的十六进制为03 52


4、按默认安装的ORACLE字符集一般为zhs16gbk,所以需要把当前的850转换为852,但DMP中是保存的十六进制,所以把第二个和第三个字节进行修改。例:00000000H:03 03 52 45..........................;改成:00000000H:03 03 54 45..............................


5、保存,现在你可以试一下导入了。

原创粉丝点击