PL/SQL Developer連線本地Oracle 11g 64位資料庫
今天在虛擬機器裡安裝了一個Oracle 11g 64位版本,在用PL/SQL Developer連線時,發現竟然沒有資料庫連線TNS。以為是PL/SQL Developer沒有識別到Oracle Hom和OCI Libaray 。 就以非登入模式進入PL/SQL Developer,在Oracle Home設定下面沒有可選項,OCI Libaray可以選到。於是手動指定Oracle Home路徑,選擇識別到的OCI Libaray。重新登入PL/SQL Developer,還是沒有資料庫連線TNS。懷疑可能是資料庫沒有安裝成功,導致在PLSQL Developer中不能識別到資料庫。以SQLI*PLUS方式登入資料庫,可以正常登入。然後,在PLSQL Developer下嘗試不選則資料庫TNS登入,這次奇蹟發生了,竟然丟擲一個錯誤訊息(確定是否安裝了Oracle 32位客戶端)。
1.登入PL/SQL Developer
這裡省略Oracle資料庫和PL/SQL Developer的安裝步驟,注意在安裝PL/SQL Developer軟體時,不要安裝在Program Files (x86)目錄下,不然無法啟動PL/SQL Developer。
奇怪這裡為什麼選擇不到資料庫的TNS呢?我是先安裝資料庫,再安裝PL/SQL Developer。按理說安裝PL/SQL Developer時,就已經識別到了Oracle Home和OCI Libaray了。管它呢?先以非登入方式登入PL/SQL Developer,設定Oracle Home和OCI Libaray。
在Oracle Home這選項下,沒有自動識別到Oracle Home目錄,於是手動指定Oracle Home路徑。
點選“確定”,退出PL/SQL Developer,再次登入。
還是選擇不到資料庫TNS,嘗試無資料庫登入,看看報什麼錯誤。
終於找到問題的關鍵點了,安裝的PL/SQL Deleloper只能識別32的oci.dll。看來是要安個64位的PL/SQL Deleloper,於是在網上搜索PL/SQL Deleloper 64位版本。然而發現PL/SQL Deleloper不區分64位和32位。那看來只能從oci.dll入手了。根據上面的報錯資訊來看,似乎只要安裝一個32位版本的Oracle Client。
2.安裝oracle Clinet
首先到Oracle官網上去下載一個Oracle 11g Client,不過需要先申請一個Oracle 帳號,才能下載。
這個一個綠色版的Oracle Client,因此只要需要解壓了,就可以是。將下載的Oracle Client檔案instantclient-basic-win32-11.2.0.1.0.zip解壓到C盤(注意啦!不能下64位的)。然後在解壓後的C:\instantclient_11_2目錄下新建NETWORK\ADMIN目錄,在ADMIN目錄下新建tnsnames.ora檔案,新增資料庫TNS。
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = chiclewu-PC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
(注意:tnsnames.ora檔案也可以從Oracle資料庫HOME目錄的NETWORK\ADMIN目錄。然後確定HOST配置是否正確,如果HOST是主機名,需要把主機名後面的域名去掉)
3.配置PL/SQL Developer的Oracle Home和OCI Libaray
以非登入模式進入PL/SQL Developer,將Oracle Home路徑指定為Oracle Client目錄(C:\instantclient_11_2),OCI Libaray路徑為Oracle Client目錄的oci.dll(C:\instantclient_11_2\oci.dll)。
點選“確定”,現在配置已完成,下面就是等待奇蹟的時刻。退出PL/SQL Developer。
4.驗證Oracle Client
開啟新的PL/SQL Developer,輸入使用者名稱和密碼,在database選項下,可以看剛才配置的TNS了。
等待奇蹟時刻...........
經過幾秒鐘的等待,奇蹟時刻終於到來了,可以登入了,可以登入了........
檢驗一下是否可以查詢資料。
查詢資料沒有問題,終於大功告成了。