Oracle817 版本 不同字符集之間的資料庫匯入 (轉)

worldblog發表於2007-12-13
Oracle817 版本 不同字符集之間的資料庫匯入 (轉)[@more@]

817 版本 不同字符集之間的匯入

 :namespace prefix = o ns = "urn:schemas--com::office" />

  由於業務原因,需要將一英文字符集(American_America.WE8ISO8859P1)的資料庫DMP匯入到一中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的資料庫中。由於字符集的不同,需要將中文字符集的資料庫環境改變成英文字符集。遇到很多的麻煩,透過在網上查詢資料,終於解決了問題。在這個過程中,發現網友們也有同樣的問題,為了,讓大家在以後能夠順利的完成此類工作,現將把我匯入成功的過程寫出來,與大家共享。

 

一、環境:

 

  匯出環境:

 

  主機:Compaq 小型機

  :

  資料庫:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)}

 

  匯入環境:

 

  主機:普通Pc 機

  主頻:PIII750

  :192M

  作業系統: 2000 server

  資料庫:Oracle8.1.7中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)

 

  注:匯出過程省略

 

二、匯入過程

 

1、  將系統中的oracle登錄檔

 

[HKEY_LOCAL_MACHINESOFTWAREORACLE]中的[NLS_LANG]鍵值

“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”改成

“American_America.WE8ISO8859P1”

 

2、  用system的身份,在-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 = 使用者名稱

 

  這裡要注意,要確保匯入的表空間和使用者已經建立並與匯出檔案一至,還要確認使用者是否擁有a的,否則有可能會影響匯入資料的完整。

 

5、  檢查匯入效果,在目前環境下,測試資料是否正確,是否有亂碼,是否有未成功匯入的表和其他、過程和等資訊。確認匯入沒有問題後,進入到下一步。

6、  將win2000下oracle字符集環境恢復成中文字符集。

[HKEY_LOCAL_MACHINESOFTWAREORACLE]中的[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、  重新啟動資料庫。

 

檢查你的資料庫中的資料,如果沒有亂碼,而且你的能夠在這個環境下正常執行,那麼恭喜你,你也成功了!!

 

  以上是我匯入的整個過程,如有紕漏之處,還希望大家指點,您可以透過E:和我取得聯絡。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993000/,如需轉載,請註明出處,否則將追究法律責任。

相關文章