【Oracle錯誤集錦】:PLSQL無法直連64位Oracle11g資料庫,plsqloracle11g
今天安裝完Oracle 11g資料庫後,用plsql串連資料庫死活都串連不上。並且plsql用戶端登入視窗的Database下拉框還為空白。見:
Oracle服務和監聽已經開啟,並且檢查了相關的配置都沒有問題。
後來去網上搜尋了下,發現有人說plsql不能直接連接64位 Oracle 11g資料庫。因為plsql是32位的,要想串連64位的資料庫還需要安裝一個32位的Oracle用戶端。。記得以前使用Oracle10g 資料庫的時候就沒有這個事啊,用plsql就可以直接連接資料庫。
解決方案:
1、下載Oracle用戶端:instantclient-basic-win32-11.2.0.1.0.zip (點擊下載Oracle32位用戶端),將其解壓至Oracle安裝目錄的Product下:
D:\app\NiuNiu\product\instantclient_11_2。
2、拷貝檔案:將資料庫安裝目錄D:\app\NiuNiu\product\11.2.0\dbhome_1\NETWORK\ADMIN 下的tnsnames.ora檔案拷貝到用戶端檔案夾裡。
3、配置PLSQL Developer:
在Tools-》perference-》Connection裡面設定Oracle_Home和OCI Library,例如本機設定為:
Oracle Home :D:\app\NiuNiu\product\instantclient_11_2
OCI Library :D:\app\NiuNiu\product\instantclient_11_2\oci.dll
4、設定環境變數:
修改變數:在Path裡添加:D:\app\NiuNiu\product\instantclient_11_2 ;
建立變數:名為”TNS_ADMIN”, 值為”D:\app\NiuNiu\product\instantclient_11_2;”
建立變數:名為”NLS_LANG”, 值為”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,
按以上步驟配置完畢後進行測試。(最好重新啟動一下電腦)
登陸成功!
答疑解惑
為什麼要配置”NLS_LANG”變數?
不添加這個變數,在使用資料庫添加資料的時候,表格中的中文會變成亂碼,這是因為咱們的資料庫是64位的,而操作軟體PLSQL_Developer是32位的。也就是說你用PLSQL_Developer編寫的中文是符合32位的字元集,而資料庫只能正確儲存是64位的中文字元集,這導致了寫和讀不是一種字元集,最終導致中文變成問號或亂碼。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。