![](/img/trans.png)
[英]Connect to two DB using Oracle wallet without TNS_ADMIN path change
[英]Connect to an external Oracle DB using TNS
我需要連接到外部數據庫以將數據從那里復制到我的表。 我有一個用於此外部數據庫的 TNS 文件,我正在嘗試使用 JDBC 進行連接,如下所示:
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" +
host +
")(PORT=" +
port +
")))(CONNECT_DATA=(SERVICE_NAME=" +
service +
")))",
user,
password);
...
但是在嘗試連接時,我收到錯誤java.net.UnknownHostException
(主機無法識別)。 我想問題是這是一個內部主機,我無權訪問它。 如何使用TNS連接數據庫?
您不應該需要完整的 TNS 文本。 以下應該足夠了
getConnection("jdbc:oracle:thin:myuser/mypass@//"+host+":"+port+"/"+service);
如果您有 tnsnames.ora,則可以提供 TNS 別名作為連接字符串的一部分。 確保您嘗試使用 tnsnames.ora 中存在的連接字符串通過 sqlplus 登錄到 Oracle 數據庫。
// dbname_tnsalias - It is the TNS alias present in tnsnames.ora.
// TNS_ADMIN --> Absolute path where tnsnames.ora is present.
final String DB_URL="jdbc:oracle:thin:@dbname_tnsalias?TNS_ADMIN=/Users/test/";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.