因工作需要将一个oracle7.3生成的dmp文件导入oracle9i中,应注意以下几点:
1。首先检查oracle7.3生成的dmp使用的字符集,方法如下:
用ultraedit32将dmp文件打开,,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:
SQL> select nls_charset_name(1) from dual;
NLS_CHARSET_NAME(1)
-------------------
US7ASCII
可以知道该dmp文件的字符集为US7ASCII
2。oracle9i生成新的数据库时字符集选择us7ascii
3。将dmp文件用IMP命令导入数据库中
4。到这步后,数据库中的中文仍然显示乱码,还需在注册表中将客户端的NLS_LANG选项修改为“AMERICAN_AMERICA.US7ASCII。对于oracle9i具体修改位置为"HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME1"
修改完毕,数据库中文显示正常。
查询当前环境的字符环境(语言)sql语句(在sqlplus中运行):select userenv('language') from dual;