簡體   English   中英

使用 TNS 連接到外部 Oracle DB

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM