天天看點

plsql在64位機器下讀取tnsname.ora 及oracle_home異常的解決辦法

問題是:

主要是安裝pl/sql時   我是這樣安裝的

1、在網上下載下傳了個instantclient-basic-nt-11.2.0.3.0包  解壓放在E盤下   路徑如下E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2

2、我在PL/SQL中的perferences中connection中的oracle_home:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2

                                                                   OCI_library:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2\oci.dll

3、然後我在環境變量中的path中加入了 E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2;

    建立NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK(資料庫字元集)

    建立TNS_ADMIN:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2\NETWORK\ADMIN;

重新開機了pl/sql  并不能連結資料庫  (之前是能正常用的  但是前幾天我重建立了一個資料庫後就不行了 )

解決辦法是:

方法一:

pldev 似乎不能正确讀取環境變量,它總是嘗試讀取系統資料庫第一個oraclehome,我也有跟你一樣的環境,我這裡好用,設定方法:

1)在pldev中的perferences中connection中的oracle_home:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2

2)這個很重要,在E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2也建立一個networ\admin目錄,将系統資料庫中第一個oraclehome下的tnsname.ora複制進來

3)正如我說的,pldev不能正确讀取環境變量,也不能正确讀取你在pldev中配置的orahome,它總會嘗試讀取系統資料庫第一個oraclehome,來取得連接配接串,沒關系,隻要保證系統資料庫第一個oraclehome的tnsname.ora與E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2的tnsname.ora一樣就可以了

4)然後你就能通過tnsname來連接配接資料庫了,注意一點,如果你需要添加新的網絡連接配接,總是在系統資料庫第一個oraclehome的tnsname.ora和E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2的tnsname.ora同時添加。

倒黴催的pldev!不支援64bit!

方法二:

1.安裝64位oracle DB。

2.安裝32位Oracle Client。 

  ..\instantclient-basic-win32-10.2.0.5.zip

3.安裝PL/SQL Developer。 

4. 選擇Tools > Preferences > options > "Oracle Home" and "OCI Library",例如:

Oracle Home: C:\Download\Software\instantclient-basic-win32-10.2.0.5

OCI Library: C:\Download\Software\instantclient-basic-win32-10.2.0.5\instantclient_10_2\oci.dll

5. 設定環境變量 NLS_LANG 和  TNS_ADMIN ,例如:

NLS_LANG: AMERICAN_AMERICA

TNS_ADMIN: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\