問題是:
我在自己電腦(win7 64bit)上安裝了oracle的64位數據庫 通過sqlplus能正常連接
主要是安裝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
OCI_library:E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2\oci.dll
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\