1. 程式人生 > >PL/SQL Developer連線本地Oracle 11g 64位資料庫

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了。

等待奇蹟時刻...........

經過幾秒鐘的等待,奇蹟時刻終於到來了,可以登入了,可以登入了........

檢驗一下是否可以查詢資料。

查詢資料沒有問題,終於大功告成了。