ODI中顯示us7ascii字符集的測試

安裝oracle DB時,選擇的字符集:美國、英語、US7ASCII。oracle

 

在不設置nls_lang的狀況,插入中文,成功,但存進去的是亂碼,select看到也是??(不管後面再怎麼設置nls_lang),下面第2條記錄即是如此。第3條記錄是設置了nls_lang = American_america.us7ascii以後插入的。命令行

 

在命令行設置nls_lang爲zhs16gbk,與DB字符集不一樣ci

 

 

 

 

第2條自己存入的有問題,始終是??。亂碼

第3條查看時的nls_lang與DB的字符集不一樣,也與insert時設置的us7ascii不一樣,所以也是亂碼。select

 

設置NLS_LANG與DB的相同jdbc

 

 

 

 

能夠看到,設置與DB相同,insert and select都沒問題。im

 

啓動ODI以前,不設置nls_lang,使用jdbc驅動鏈接到DB上,查看錶的數據:數據

 

 

 

亂碼。db

 

設置nls_lang=American_america.us7ascii,並在同一命令行下啓動odi,繼續使用jdbc,查看數據:img

 

 

 

仍是亂碼。

 

在ODI的鏈接參數中,改成使用jdbc:odbc

 

 

 

 

查看數據:

 

 

 

正常。

若是設置nls_lang爲zhs16gbk,從新啓動ODI,則看到的數據:

 

 

 

仍然是亂碼。

 

結論

         針對us7ascii字符集的oracle DB,須要在nls_lang中設置與DB相同的字符集,而後使用jdbc:odbc方式訪問DB,才能確保在ODI中看到的數據正常顯示。

相關文章
相關標籤/搜索