Oracle817 版本 不同字符集之間的數據庫導入
2024-08-29 13:31:06
供稿:網友
oracle817 版本 不同字符集之間的數據庫導入
由于業務原因,需要將一英文字符集(american_america.we8iso8859p1)的數據庫dmp文件導入到一中文字符集(simplified chinese_china.zhs16gbk)的數據庫中。由于字符集的不同,需要將中文字符集的數據庫環境改變成英文字符集。遇到很多的麻煩,通過在網上查找資料,終于解決了問題。在這個過程中,發現網友們也有同樣的問題,為了,讓大家在以后能夠順利的完成此類工作,現將把我導入成功的過程寫出來,與大家共享。
一、系統環境:
導出環境:
主機:compaq 小型機
操作系統:unix
數據庫:oracle8.1.7{英文字符集(american_america.we8iso8859p1)}
導入環境:
主機:普通pc 機
主頻:piii750
內存:192m
操作系統:windows 2000 server
數據庫:oracle8.1.7中文字符集(simplified chinese_china.zhs16gbk)
注:導出過程省略
二、導入過程
1、 將win2000系統中的oracle注冊表
[hkey_local_machine oftware/oracle]中的[nls_lang]鍵值
“simplified chinese_china.zhs16gbk”改成
“american_america.we8iso8859p1”
2、 用system用戶的身份,在sql-plus 下執行以下語句:
update sys.props$ set value$='we8iso8859p1' where name='nls_characterset';
update sys.props$ set value$='we8iso8859p1' where name='nls_nchar_characterset';
commit;
3、 重新啟動oracle
4、 開始導入數據庫
userid = 用戶名/密碼@連結串
buffer = 60000
log = c:/dmp.log
file = c:/導入數據文件名稱.dmp
fromuser = 用戶名
touser = 用戶名
這里要注意,要確保導入的表空間和用戶已經建立并與導出文件一至,還要確認用戶是否擁有dba的權限,否則有可能會影響導入數據的完整。
5、 檢查導入效果,在目前環境下,測試數據是否正確,是否有亂碼,是否有未成功導入的表和其他觸發器、過程和函數等信息。確認導入沒有問題后,進入到下一步。
6、 將win2000下oracle字符集環境恢復成中文字符集。
[hkey_local_machine oftware/oracle]中的[nls_lang]鍵值
“american_america.we8iso8859p1” 改回
“simplified chinese_china.zhs16gbk”
7、 用system用戶的身份,在sql-plus 下執行以下語句:
update sys.props$ set value$=' zhs16gbk ' where name='nls_characterset';
update sys.props$ set value$=' zhs16gbk ' where name='nls_nchar_characterset';
commit;
8、 重新啟動數據庫。
檢查你的數據庫中的數據,如果沒有亂碼,而且你的程序能夠在這個環境下正常運行,那么恭喜你,你也成功了!!
以上是我導入的整個過程,如有紕漏之處,還希望大家指點,您可以通過email:[email protected]和我取得聯系。