標籤: ref 奇蹟 sql com 資料庫 blank 主機 報錯
本文來源,為了方便直接拷貝過來。如有侵權,請告知,謝謝
http://blog.csdn.net/chiclewu/article/details/14646687
今天在虛擬機器裡安裝了一個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 帳號,才能下載。
目前:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
這個一個綠色版的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了。
PL/SQL Developer串連本地Oracle 11g 64位元據庫