SpringBoot项目连接Oracle视图报错整理

在若依框架中增加连接Oracle视图报错

工具测试连接

通过使用plsql连接数据库测试,连接成功

1. 相关配置内容

连接配置

url: jdbc:oracle:thin:@192.168.0.210:1521:HIS

username: portal_his

password: XXXXXX

driver-class-name: oracle.jdbc.driver.OracleDriver

依赖版本

xml 复制代码
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
错误1
bash 复制代码
12:57:22.428 [Druid-ConnectionPool-Create-1721235373] ERROR c.a.d.p.DruidDataSource - [run,2840] - create connection SQLException, url: jdbc:oracle:thin:@192.168.0.220:1521:HIS, errorCode 12505, state 66000
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
 
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2838)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:

修改连接:

url: jdbc:oracle:thin:@192.168.0.210:1521/HIS

错误2
bash 复制代码
12:59:04.390 [Druid-ConnectionPool-Create-1473057156] ERROR c.a.d.p.DruidDataSource - [run,2840] - create connection SQLException, url: jdbc:oracle:thin:@192.168.0.220:1521/HIS, errorCode 12514, state 66000
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
 
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2838)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:

解决

  1. 通过plsql查看oracle版本
shell 复制代码
SELECT * FROM V$VERSION;

1	Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production	0
2	PL/SQL Release 12.2.0.1.0 - Production	0
3	CORE	12.2.0.1.0	Production	0
4	TNS for Linux: Version 12.2.0.1.0 - Production	0
5	NLSRTL Version 12.2.0.1.0 - Production	0
  1. 修改依赖包版本
xml 复制代码
<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>12.2.0.1</version>
</dependency>
  1. 查看实例名
bash 复制代码
select INSTANCE_NAME from v$instance;

1	orcl
  1. 修改数据库连接配置
go 复制代码
url: jdbc:oracle:thin:@192.168.0.210:1521:orcl
或
url: jdbc:oracle:thin:@192.168.0.210:1521/orcl
  1. 再次运行连接成功
bash 复制代码
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7c4d52d9]
13:09:38.701 [RuoyiScheduler_Worker-1] INFO  c.c.c.c.d.DynamicDataSourceContextHolder - [setDataSourceType,26] - 切换到HIS数据源
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@a703718] was not registered for synchronization because synchronization is not active
13:09:39.444 [RuoyiScheduler_Worker-1] INFO  c.a.d.p.DruidDataSource - [init,998] - {dataSource-2} inited
JDBC Connection [oracle.jdbc.driver.T4CConnection@3bddc104] will not be managed by Spring
==>  Preparing: select SHBH,HISLSH,HISDDH,YHKH,XTCKH,ZFSJ,YWLX,JYLX,ZFFS,ZFJE,YGDM,YGXM, JYQD,HZKH,BRID,BRXM,SJHM from V_LD_DZPT WHERE ZFSJ >= to_date(?, 'yyyy-mm-dd') AND ZFSJ <= to_date(?, 'yyyy-mm-dd') + 1 
==> Parameters: 2025-02-25(String), 2025-02-25(String)
<==    Columns: SHBH, HISLSH, HISDDH, YHKH, XTCKH, ZFSJ, YWLX, JYLX, ZFFS, ZFJE, YGDM, YGXM, JYQD, HZKH, BRID, BRXM, SJHM
  1. 说明
go 复制代码
url: jdbc:oracle:thin:@192.168.0.210:1521:orcl
或
url: jdbc:oracle:thin:@192.168.0.210:1521/orcl
二者区别:
‌:和/的区别主要在于URL格式的不同,前者使用SID方式,后者使用ServiceName方式
1. 使用SID的方式‌:URL格式为 jdbc:oracle:thin:@host:port:SID,例如 jdbc:oracle:thin:@localhost:1521:orcl。这种方式需要指定主机名、端口和SID‌
2. 使用ServiceName的方式‌:URL格式为 jdbc:oracle:thin:@//host:port/ServiceName,例如 jdbc:oracle:thin:@//localhost:1521/orcl。这种方式需要指定主机名、端口和ServiceName‌
相关推荐
Data_Adventure4 分钟前
TypeScript 开发者转向 Java:学习重点与思维迁移指南
后端
吴祖贤9 分钟前
Spring AI 零基础入门:从踩坑到上手的完整指南
后端
小二·11 分钟前
从零到上线:Spring Boot 3 + Spring Cloud Alibaba + Vue 3 构建高可用 RBAC 微服务系统(超详细实战)
vue.js·spring boot·微服务
cherry523015 分钟前
Java大厂面试真题:Spring Boot + 微服务 + 缓存架构三轮技术拷问实录
jvm·spring boot·mysql·微服务·java面试·分布式架构·redis缓存
code_std21 分钟前
SpringBoot 登录验证码
java·spring boot·后端
摇滚侠21 分钟前
Spring Boot3零基础教程,响应式编程,前景提要,笔记108
java·spring boot·笔记
Mos_x29 分钟前
@RestController注解
java·后端
神色自若42 分钟前
abpVnext 获取token报错,配置文件从sqlerver切换到oracle,再切换回来sqlerver无法获取token
oracle·sqlserver·abpvnext
bcbnb43 分钟前
Fiddler抓包工具使用教程,HTTPHTTPS抓包、代理配置与调试技巧全解析(附实战经验)
后端