文章詳情頁
Oracle817 版本 不同字符集之間的數(shù)據(jù)庫導入
瀏覽:73日期:2023-11-18 18:48:45
Oracle817 版本 不同字符集之間的數(shù)據(jù)庫導入 ;;;;由于業(yè)務原因,需要將一英文字符集(American_America.WE8ISO8859P1)的數(shù)據(jù)庫DMP文件導入到一中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)的數(shù)據(jù)庫中。由于字符集的不同,需要將中文字符集的數(shù)據(jù)庫環(huán)境改變成英文字符集。碰到很多的麻煩,通過在網(wǎng)上查找資料,終于解決了問題。在這個過程中,發(fā)現(xiàn)網(wǎng)友們也有同樣的問題,為了,讓大家在以后能夠順利的完成此類工作,現(xiàn)將把我導入成功的過程寫出來,與大家共享。一、系統(tǒng)環(huán)境: 導出環(huán)境: 主機:Compaq 小型機 操作系統(tǒng):Unix 數(shù)據(jù)庫:oracle8.1.7{英文字符集(American_America.WE8ISO8859P1)} 導入環(huán)境: 主機:普通Pc 機 主頻:PIII750 內(nèi)存:192M 操作系統(tǒng):windows 2000 server 數(shù)據(jù)庫:Oracle8.1.7中文字符集(SIMPLIFIED CHINESE_CHINA.ZHS16GBK) 注:導出過程省略二、導入過程 1、; 將win2000系統(tǒng)中的oracle注冊表[HKEY_LOCAL_MACHINE OFTWAREORACLE]中的[NLS_LANG]鍵值“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”改成“American_America.WE8ISO8859P1”2、; 用system用戶的身份,在Sql-plus 下執(zhí)行以下語句:update sys.props$ set value$='WE8ISO8859P1' where name='NLS_CHARACTERSET';update; sys.props$ set value$='WE8ISO8859P1' where name='NLS_NCHAR_CHARACTERSET';commit;3、; 重新啟動oracle4、; 開始導入數(shù)據(jù)庫userid = 用戶名/密碼@連結(jié)串buffer = 60000log = c:dmp.logfile = c:導入數(shù)據(jù)文件名稱.dmpfromuser = 用戶名touser = 用戶名 這里要注重,要確保導入的表空間和用戶已經(jīng)建立并與導出文件一至,還要確認用戶是否擁有dba的權限,否則有可能會影響導入數(shù)據(jù)的完整。 5、; 檢查導入效果,在目前環(huán)境下,測試數(shù)據(jù)是否正確,是否有亂碼,是否有未成功導入的表和其他觸發(fā)器、過程和函數(shù)等信息。確認導入沒有問題后,進入到下一步。6、; 將win2000下oracle字符集環(huán)境恢復成中文字符集。[HKEY_LOCAL_MACHINE OFTWAREORACLE]中的[NLS_LANG]鍵值“American_America.WE8ISO8859P1” 改回“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 7、; 用system用戶的身份,在Sql-plus 下執(zhí)行以下語句:update sys.props$ set value$=' ZHS16GBK ' where name='NLS_CHARACTERSET';update; sys.props$ set value$=' ZHS16GBK ' where name='NLS_NCHAR_CHARACTERSET';commit;8、; 重新啟動數(shù)據(jù)庫。檢查你的數(shù)據(jù)庫中的數(shù)據(jù),假如沒有亂碼,而且你的程序能夠在這個環(huán)境下正常運行,那么恭喜你,你也成功了!! 以上是我導入的整個過程,如有紕漏之處,還希望大家指點,您可以通過Email:hawk_flying@sina.com和我取得聯(lián)系。
標簽:
Oracle
數(shù)據(jù)庫
排行榜
