我有一个使用JDBC(通过JPA)的Java应用程序,它使用主机名、端口和Oracle SID连接到开发数据库,如下所示:

jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ

XYZ是先知席德.现在,我需要连接到另一个Oracle数据库,该数据库不使用SID,而是使用Oracle"服务名称".

我试过了,但没用:

jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD

ABCD是另一个数据库的服务名称.

我做错了什么?

推荐答案

http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA

100

精简样式的服务名称仅受JDBC瘦驱动程序支持.语法为:

@//主机名:端口号/服务名

例如:

jdbc:oracle:thin:scott/tiger@//myhost:1521/myservicename

所以我会try :

100

此外,根据Robert GreaTower的回答,您还可以在JDBC URL中指定TNS名称,如下所示:

jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL=TCP)(HOST=blah.example.com)(PORT=1521)))(CONNECT_DATA=(SID=BLAHSID)(GLOBAL_NAME=BLAHSID.WORLD)(SERVER=DEDICATED)))

Java相关问答推荐

如果一个子类没有构造函数,超类也没有构造函数,那么为什么我可以构造子类的实例呢?

Java模式匹配记录

解析Javadoc时链接的全限定类名

嵌入式ActiveMQ Artemis Web控制台加载错误

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

在bash中将数组作为Java程序的参数传递

Com.example.service.QuestionService中的构造函数的参数0需要找不到的类型为';com.example.Dao.QuestionDao;的Bean

为什么在maven中,getLast方法不适用于List?

由于 list 中的权限错误,Android未生成

将java.util.Date转换为OffsetDateTime

Java Mooc.fi Part 12_01.Hideout -返回和删除方法

Tinylog中的滚动文件会在每次应用启动时覆盖日志(log)文件

声明带有泛型的函数以用作查找映射中的值

为什么同步数据块无效?

在执行流和相关操作时,使用Java泛型为2个方法执行相同的操作,但对象不同

Spring Boot&;Docker:无法执行目标org.springframework.boot:spring-boot-maven-plugin:3.2.0:build-image

如何在JUNIT测试中覆盖ExecutorService?

错误:不兼容的类型:Double不能转换为Float

从Spring6中的JPMS模块读取类时出现问题

如何在右击时 Select 新行?