由於最近在研究bi,所以在這個過程中會發現或大或小,或多或少的問題,為了方便以後查詢,我會在研究過程中多做一些記錄。
今天在做etl練習的時候,我把源資料(oracle)中某個表的資料etl到 sybase iq中某個表中去,最後發現資料是進去了,但是中文 亂碼。
因為sybase iq 中我使用的是 自帶的demo資料庫,具體位置如下:
e:/dbms/sybase/asiq-12_7/demo(windows xp)
其他人的位置視安裝路徑不同 有所不一樣。
因為在做etl抽取的過程中沒有注意,所以最後發現到sybase中的中文 資料是亂碼。
於是乎第一想到的就是 資料庫之間的字符集不匹配造成的,順著這個思路查詢發現
oracle這邊的資料庫編碼是:
select * from nls_database_parameters
sybase iq這邊的資料庫編碼是:
下面介紹兩種檢視方法
首先通過sybase central連線到要檢視的資料庫,然後選中要看的資料庫,右鍵properties-->extended info,然後檢視charset即可。
select property('charset');
通過以上驗證發現 源資料庫(oracle)字符集為:zhs16gbk; 目標資料庫(sybase iq)字符集為iso_1
看到這裡不難發現,問題應該是出現在字符集上。
於是我自己重新建立了乙個sybase iq的資料,重新指定了字符集為:cp936
備註:
cp936就是指系統裡第936號編碼格式,也就是gb2312。
如下說明:
936 gb2312 簡體中文(gb2312)以至於gb2312 gbk gb18030之間的關係,可以先簡單理解為:
gb2312 < gbk < gb18030
更加具體的理解可以參看:
資料庫字符集
1 檢視資料庫字符集 資料庫伺服器字符集select from nls database parameters,其 於props 是表示資料庫的字符集。客戶端字符集環境select from nls instance parameters,其 於v parameter,表示客戶端的字符集的設定,可能...
oracle 資料庫字符集
oracle全球支援 即globalization support 允許我們使用本地語言和格式來儲存和檢索資料。通過全球支援,oracle可以支援多種語言及字符集,得以展示資料庫的強大魅力。1 字符集的基本知識 如果從頭說起,字符集最早的編碼方案來自於與ascii.這也是我們最常見的編碼方式。該方案...
oracle資料庫字符集
一 什麼是oracle字符集 oracle字符集是乙個位元組資料的解釋的符號集合,有大小之分,有相互的包容關係。oracle 支援國家語言的體系結構允許你使用本地化語言來儲存,處理,檢索資料。它使資料庫工具,錯誤訊息,排序次序,日期,時間,貨幣,數字,和日曆自動適應本地化語言和平台。影響oracle...