【问题标题】:Connect to an external Oracle DB using TNS使用 TNS 连接到外部 Oracle 数据库
【发布时间】:2021-12-11 00:59:33
【问题描述】:

我需要连接到外部数据库以将数据从那里复制到我的表中。我有这个外部数据库的 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 连接数据库?

【问题讨论】:

    标签: java oracle jdbc tnsnames


    【解决方案1】:

    您不需要完整的 TNS 文本。以下应该足够了

    getConnection("jdbc:oracle:thin:myuser/mypass@//"+host+":"+port+"/"+service);
    

    【讨论】:

      【解决方案2】:

      如果您有 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/";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-24
        • 2015-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        相关资源
        最近更新 更多