在不同字符集的數(shù)據(jù)庫之間導入數(shù)據(jù)的方法
在不同字符集的數(shù)據(jù)庫之間導入數(shù)據(jù)簡便數(shù)據(jù)庫的操作,當然在不同字符集的數(shù)據(jù)庫之間導入數(shù)據(jù)也是很多數(shù)據(jù)庫操作工作者非常青睞的一種操作方法,下文中將為大家講解在不同字符集的數(shù)據(jù)庫之間導入數(shù)據(jù)的方法。以US7ASCII的庫中導出的數(shù)據(jù)導入到字符集為ZHS16GBK的庫為例子:
假設US7ASCII的庫是A機,字符集為ZHS16GBK的庫為B機
1.確定你A機上的oracle用戶的.profile文件中的NLS_LANG是US7ASCII,正常的導出所有數(shù)據(jù)。
2.然后傳到B機上,bin模式,然后在B機上設定好oracle用戶的設定環(huán)境變量NLS_LANG=AMERICAN_AMERICA.US7ASCII
以sys用戶執(zhí)行update props$ set values$='US7ASCII'
where name='NLS_CHARACSET';
3.正常的導入數(shù)據(jù)至ZHS16GBK的數(shù)據(jù)庫中去,重新啟動數(shù)據(jù)庫,此時查看原來導入的數(shù)據(jù)應該已經(jīng)中文了。
4.把環(huán)境變量改回來,NLS_LANG=AMERCIAN_AMERICA.ZHS16GBK
以sys用戶登陸ZHS16GBK的數(shù)據(jù)庫然后執(zhí)行一下語句:
update props$ set values$='ZHS16GBK'
where name='NLS_CHARACSET';
重新啟動數(shù)據(jù)庫讓其修改生效即可。
如果不放心,可以把當前ZHS16GBK數(shù)據(jù)庫中的數(shù)據(jù)正常exp出來,然后重新建庫后正常導入。
以上過程我在oracle9.2.0和9.0.1,8.1.7上測試成功。
通過上文中講解的這些步驟就能夠?qū)崿F(xiàn)在不同字符集的數(shù)據(jù)庫之間導入數(shù)據(jù),希望大家都能夠從上文中涉及到的內(nèi)容中有所收獲。