gpt4 book ai didi

java - 如何使用带有 TNSNames 别名语法的 JDBC 瘦驱动程序连接到 Oracle 数据库

转载 作者:行者123 更新时间:2023-12-04 03:01:15 25 4
gpt4 key购买 nike

我正在尝试使用 Oracle JDBC 瘦驱动程序(ojdbc6.jar for 11.2.0.2.0)和以下 JDBC URL 语法连接到 Oracle (11.2.0.2.0) 数据库:

jdbc:oracle:thin:@abcd

'abcd' 在我的 tnsnames.ora 文件中定义,如下所示:

    abcd, abcd.world, abcd.dk.xyz.com  =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd.dk.xyz.com)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = abcd)
)
)

我根据 Oracle® Database JDBC Developer's Guide and Reference 提供了 VM 选项 -Doracle.net.tns_admin=/etc/tnsnames.ora .

运行应用程序时出现以下错误:

    Listener refused the connection with the following error:
ORA-12504, TNS:listener was not given the SID in CONNECT_DATA

但是当我从 tnsnames.ora 中删除别名 abcd.world 和 abcd.dk.xyz.com 时,我的应用程序能够连接到数据库。

当 tnsnames.ora 文件中有多个别名时,ojdbc 驱动程序是否有问题?

我的 JDK 版本是 1.6.0_31。

谢谢,主持人

最佳答案

看起来,Oracle JDBC 驱动程序不能使用多个服务名称。使用这些条目

    abcd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd.dk.xyz.com)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = abcd)
)
)
abcd.world, abcd.dk.xyz.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd.dk.xyz.com)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = abcd)
)
)

关于java - 如何使用带有 TNSNames 别名语法的 JDBC 瘦驱动程序连接到 Oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com