1. 程式人生 > >不用安裝客戶端訪問ORACLE

不用安裝客戶端訪問ORACLE



plsql 可不可以直接遠端連線伺服器?都說要安裝客戶端,記得以前用過個什麼sql deveplore 什麼的工具,不用安裝客戶端的,而且是綠色軟體來的,我就想,一定就辦法,不用這麼麻煩安裝客戶端的。上網找了找,下面把我的實踐詳細過程記錄下來,希望 對大家有幫助,有什麼不對的,請大家多多評論,指出來。

1、在安裝ORACLE伺服器的機器上搜索下列檔案,
oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll   (可能伺服器沒有,如果沒有則pl sql 隨便使用者名稱密碼可以登陸)
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
放到一個資料夾,如 oraclient


2、配置tnsnames.ora,如果本機上沒有安裝oracle,可以從安裝了oracle的機上拷貝一個(tnsnames.ora檔案在%ORACLE_HOME%\network\admin下)放在上面的目錄D:\oraclient下。
oracledata =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oracledata)
    )
)

3、新增一個環境變數,名為TNS_ADMIN,值為tnsnames.ora檔案所在路徑(如:D:\oraclient,特別是重灌後或其它操 作,忘了TNS_ADMIN變數,plsql登陸就會報無法解析指定的連線識別符號),這是為了能夠找到上面說的tnsnames.ora。如果本機上安裝 了ORACLE,並且設定了ORACLE_HOME環境變數,那麼會自動在%ORACLE_HOME%/network/admin/位置查詢 tnsnames.ora檔案。

4、設定ORACLE的語言,新增環境變數:
“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII編碼型別,其它型別可自己到伺服器看一下或網上查詢一下)
(本步驟暫時要做對,如果編碼不對,會產生亂碼)

5、下載並安裝PL.SQL.Developer配置應用
配置tools->preferences->connection
Oracle Home=D:\oracleclient
OCI library=D:\oracleclient\oci.dll

6、再次開啟plsql則會在database中有oracledata 選項輸入使用者名稱密碼就可以登陸。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

問題解決辦法:

字符集查詢: select userenv('language') from dual
配置簡體中文字符集: 右擊“我的電腦”-“屬性”-“高階”-“環境變數”-“系統變數”-

ORA-12557: TNS:protocol adapter not loadable
開啟plsql,連線oralce,報了這個錯:ORA-12557,網上找了一大堆,都不是我的出現問題的原因,搞了一下午,實在搞不定了,找公司大神一看,大神直奔主題,點開plsql中的,幫助->支援資訊,看到Preferences中的OCI Library用的11g的oci.dll,一目瞭然。

於是開啟Preference Files中的2個Default.ini檔案檢視,把OCIFile改掉成9i的路徑(OCIFile=D:\Oracle9i\ora90\BIN\oci.dll),搞定。


plsql連線oracle資料庫報ora 12154錯誤解決方法

今天遇到一個問題,使用sqlplus能夠連線到遠端的資料庫,但是使用plsql卻連線不上,報錯"ORA-12154: TNS: 無法解析指定的連線識別符號"

解決方法如下:
1.先檢查伺服器端的監聽服務是否開啟,如果沒有開啟請啟動其監聽
客戶端:tnsping <tns_name>
伺服器Linux下:
#>lsnrctl status 檢視監聽狀態
#>lsnrctl start 啟動監聽
2.通過Sql Plus連線一下試試,如果Sql Plus連線能成功,那就說明你的tnsnames.ora內容有錯誤 我的問題就在別名dev_db前面有一個空格,這個可以通過文字編輯器(Edit Plus,UE等)來檢視是否有空格,只要有空格那就肯定是不行的,而且如果那段內容是出現在檔案的中間的話,將導致該檔案裡所有相應的連線別名都不成功,如果是在最後面就只有其自身連線別名不能成功,其他連線別名還是能連線成功。(注:我的tnsnames.ora配置了多個數據庫例項的連線,所有才有多個連線別名。)
如: 空格

複製程式碼 程式碼如下:

dev_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521)))
(CONNECT_DATA =
(SID = ora10)
)
)

3.如果確保你的tnsnames.ora內容沒有錯誤,那請將%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目錄下的所有檔案刪了,然後重新連線,一般就能解決了。 說明一下:那個目錄裡的檔案是在你建立連線的時候動態生成的,不要怕刪了會有問題
4.進入PLSQL Developer的主介面,在登入介面選擇取消即不登入進入主介面,然後選擇選單Tools(工具)-Preferences(首選項),在設定視窗中,選擇Oracle-Connection(連線),對應設定視窗中,找到Oracle Home(Oracle主目錄),選擇你本地所安裝客戶端的版本,儲存設定,然後重新啟動PLSQL Developer,這時就可以正常登入了。
我是使用第二種方法解決的。

-----------------------------------------------------------------------------------------------------------------------------------------------

TNS_ADMIN tnsnames.ora

ORACLE_HOME  =E:\software\OracleClientBin
Path=%ORACLE_HOME%
TNS_ADMIN = %ORACLE_HOME%
LD_LIBRARY_PATH = %ORACLE_HOME%
SQLPATH =%ORACLE_HOME%
NLS_LANG = AMERICAN_AMERICA.ZHS16GBK(或SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
AMERICAN_AMERICA.JA16SJIS