2015-06-15 84 views
0
-bash-4.1$ export TNS_ADMIN="/tmp/PKI/DB_A" 
-bash-4.1$ sqlplus /@DB_A 

連接細連接兩個DB

-bash-4.1$ export TNS_ADMIN="/tmp/PKI/DB_B" 
-bash-4.1$ sqlplus /@DB_B 

連接否認罰款

-bash-4.1$ sqlplus /@DB_A 

錯誤登錄(自上次TNS_ADMIN路徑指向DB_A)

在JDBC中有一個使用TNS名稱的選項,即將oracle.net.TNS_ADMIN屬性設置爲包含您的tnsnames.ora文件的目錄(java -Doracle.net.tns_admin = $ ORACLE_HOME/network/admin)。

情況是,我將無法更改TNS_ADMIN路徑。 Oracle sqlplus NOT中是否有任何選項可以指定TNS_ADMIN路徑,但是可以無縫連接到DB_A和DB_B?

+0

爲什麼你不能改變TNS_ADMIN?你有關於sqlplus或關於JDBC的問題嗎?在Unix上,還有用戶本地文件'〜/ .tnsnames.ora'。所以你可以使它成爲一個符號鏈接,你可以使用'ln -sf'來改變它的目標。 PS:AFAIK Oracle錢包實現與Java keytool相同的界面。所以你可以使用它作爲Java密鑰庫。 sqlplus登錄只是其中一種用法。 – ibre5041

+0

嗨ibre,情況是,我將無法更改TNS_ADMIN路徑。 Oracle sqlplus中有沒有任何選項可以指定TNS_ADMIN路徑,但可以無縫地連接到DB_A和DB_B? – AKS

+0

我不這麼認爲。也許你可以創建一個從DB_A到DB_B的dblink - 但這真的不是一個解決方案。要麼你有外殼訪問,然後你可以改變環境。變量或它與你和系統管理員之間。如果他們做出這樣的限制,那麼他們應該找到解決方案。 – ibre5041

回答

0

您可以直接連接到DB這樣的:

sqlplus /@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521))(CONNECT_DATA=(SERVER= DEDICATED)(SERVICE_NAME=DB_A)))" 

即從你喜歡用tnsnames.ora文件複製全文。刪除任何換行符以在命令行上使用。