PL/SQL Developer 在windows7 64位系統下連Oaracle11g64位系統的解決經驗,windows7系統下載

來源:互聯網
上載者:User

PL/SQL Developer 在windows7 64位系統下連Oaracle11g64位系統的解決經驗,windows7系統下載

                                   PL/SQL Developer 在windows7 64位系統下連Oaracle11g64位系統的解決經驗
一、問題現象及解決方案
現象:
1.PL/SQL 無法登入64位元據庫
2.在PL/SQL developer中輸入中文,儲存後,中文變成'??'這樣的亂碼符號
3.匯入帶有中文的資料後,中文資料變成'??'這樣的亂碼符號
環境:
1.windows7 64位系統
2.oracle11g 64位系統
3.PL/SQL developer 9.0
解決方案:
1.下載windows32位的instantclient包,並放到某個目錄下,假設D:\instantclient
2.拷貝D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN到D:\instantclient下
(假設oracle11g安裝目錄是D:\App\Administrator\Product\11.2.0\dbhome_1\)
3.把tnsnames.ora檔案放到D:\instantclient\Network\Admin目錄下
4.把D:\instantclient加到作業系統的Path路徑的最前面。
5.增加系統內容變數TNS_ADMIN變數的值為D:\instantclient
6.PL/SQL Developer的工具喜好設定的Oracle主目錄名為D:\instantclient,OCI庫為D:\instantclient\OCI.DLL
7.核對Oracle11g的字元集和作業系統的字元集是否一致,一致才不會亂碼,假設需一致為ZHS16GBK。
8.如果Oracle11g字元集不是ZHS16GBK,修改oracle11g的字元集為ZHS16GBK
9.增加作業系統環境變數NLS_LANG變數的值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK或AMERICAN.ZHS16GBK

二、經驗教訓
   網路上對於此類問題,大多也是這麼解決的。我按照網路上的方法試了很多次,還重裝過幾次Oracle,折騰很久最終才解決了亂碼問題。
   之所以折騰很久,是因為驗證方法上出現了失誤,在問題解決之前,我一直覺得要把之前輸入的中文變成的‘????',使之再次變成中文才算解決問題,
   實際上再次錄入中文,儲存後不變成‘???’即解決亂碼問題,所以細節很重要。有的時候,在普遍的方法都是一樣的方法的時候,那麼這種方法應該是奏效的,至於一次次   的操作後,還沒解決問題,應該冷靜的想想操作過程,想想細節,問題可能就出在操作細節上,驗證方法上。
 
三、相關知識
1、如何查看windows作業系統當前使用的字元集
Chcp
顯示活動控制台字碼頁數量,或更改該控制台的活動控制台字碼頁。如果在沒有參數的情況下使用,則 chcp 顯示活動控制台字碼頁的數量。
文法
chcp [nnn]
參數
指定字碼頁。下表列出了所有支援的字碼頁及其國家(地區)或者語言:
字碼頁       國家(地區)或語言
437          美國
708          阿拉伯文(ASMO 708)
 720          阿拉伯文(DOS)
 850          多語言(拉丁文 I)
852          中歐(DOS) - 斯拉夫語(拉丁文 II)
855          西裡爾文(俄語)
857          土耳其語
860          葡萄牙語
861          冰島語
862          希伯來文(DOS)
 863          加拿大 - 法語
865          日耳曼語
866          俄語 - 西裡爾文(DOS)
869          現代希臘語
 874          泰文(Windows)
 932          日文(Shift-JIS)
 936          中國 - 簡體中文(GB2312)
 949          韓文
 950          繁體中文(Big5)
 1200         Unicode       
1201         Unicode (Big-Endian)
 1250         中歐(Windows)
 1251         西裡爾文(Windows)
 1252         西歐(Windows)
 1253         希臘文(Windows)
 1254         土耳其文(Windows)
 1255         希伯來文(Windows)
 1256         阿拉伯文(Windows)
 1257         波羅的海文(Windows)
 1258         越南文(Windows)
 20866        西裡爾文(KOI8-R)
 21866        西裡爾文(KOI8-U)
 28592        中歐(ISO)
 28593        拉丁文 3 (ISO)
 28594        波羅的海文(ISO)
 28595        西裡爾文(ISO)
 28596        阿拉伯文(ISO)
 28597        希臘文(ISO)
 28598        希伯來文(ISO-Visual)
 38598        希伯來文(ISO-Logical)
 50000        使用者定義的
 50001        自動選擇
 50220        日文(JIS)
 50221        日文(JIS-允許一個位元組的片假名)
 50222        日文(JIS-允許一個位元組的片假名 - SO/SI)
 50225        韓文(ISO)
 50932        日文(自動選擇)
 50949        韓文(自動選擇)
 51932        日文(EUC)
 51949        韓文(EUC)
 52936        簡體中文(HZ)
 65000        Unicode (UTF-7)
 65001        Unicode (UTF-8)

在Windows平台下,直接在命令列中,輸入以下命令,就會顯示windows作業系統當前使用的字元集:

chcp


影響Oracle資料庫字元集最重要的參數是NLS_LANG參數。
 
它的格式如下: NLS_LANG = language_territory.charset
 
它有三個組成部分(語言、地區和字元集),每個成分控制了NLS子集的特性。
 
其中:
 
Language: 指定伺服器訊息的語言, 影響提示資訊是中文還是英文
 
Territory: 指定伺服器的日期和數字格式,
 
Charset:  指定字元集。
 
如:AMERICAN _ AMERICA. ZHS16GBK
 
從NLS_LANG的組成我們可以看出,真正影響資料庫字元集的其實是第三部分。
 
所以兩個資料庫之間的字元集只要第三部分一樣就可以相互匯入匯出資料,前面影響的只是提示資訊是中文還是英文。
 
怎麼查看資料庫版本
 select * from v$version   包含版本資訊,核心版本資訊,位元資訊(32位或64位)等 
 
2、查看資料庫字元集
 資料庫伺服器字元集select * from nls_database_parameters,其來源於props$,是表示資料庫的字元集。
 
用戶端字元集環境select * from nls_instance_parameters,其來源於v$parameter,表示用戶端的字元集的設定,可能是參數檔案,環境變數或者是註冊表

會話字元集環境select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設定,將與nls_instance_parameters一致。

查詢oracle server端的字元集

 有很多種方法可以查出oracle server端的字元集,比較直觀的查詢方法是以下這種:
 
 SQL> select userenv('language') from dual;
 
 USERENV('LANGUAGE')
 
----------------------------------------------------

 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
 

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.