gpt4 book ai didi

java - 如何将连接字符串与 jdbc url 一起使用

转载 作者:行者123 更新时间:2023-11-30 09:27:40 26 4
gpt4 key购买 nike

我正在尝试使用以下 url 将 oracle 与 jdbc 连接

String url = "jdbc:oracle:thin:@<host>:1522:dev;includeSynonyms=true";

但它抛出以下错误。

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
<host>:1522:dev;includeSynonyms=true

如果我从 url 中删除属性 (includeSynonyms=true),我就可以连接。

我正在使用 ojdbc14.jar

请帮帮我

最佳答案

您不能(据我所知)将其设置为 URL 的一部分。根据 OracleDriver documentaion :

Specifying a Database URL and Properties Object

The following signature takes a URL, together with a properties object that specifies user name and password (perhaps among other things):

getConnection(String URL, Properties info);

Where the URL is of the form:

jdbc:oracle:<drivertype>:@<database>

In addition to the URL, use an object of the standard Java Properties class as input. For example:

java.util.Properties info = new java.util.Properties();
info.put ("user", "scott");
info.put ("password","tiger");
info.put ("defaultRowPrefetch","15");
getConnection ("jdbc:oracle:oci8:@",info);

列出 Oracle JDBC 驱动程序支持的连接属性的表包括 includeSynonyms ,所以你应该能够做到:

String url = "jdbc:oracle:thin:@//<HOST>:1522/dev"
java.util.Properties info = new java.util.Properties();
info.put ("includeSynonyms", "true");
getConnection (url, info);

恐怕未经测试,我不确定它是否适用于您的驱动程序版本。您也可以稍后通过 OracleConnectionOracleConnectionWrapper .

也不能完全确定 URL 形式是否适用于 1.4 驱动程序,但我认为它适用 - 您可能需要使用原始的 @<host>:1522:dev形式。并注意在 easy connect格式,dev指的是服务名称而不是 SID,它们可能不相同;检查什么lsnrctl status显示这是否有问题。

关于java - 如何将连接字符串与 jdbc url 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455566/

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