最近帮助同事写了一个SSM的小项目,在刚刚配置项目的时候,出现一个问题,数据库链接报错ORA-12505。如下:

### The error may exsit in com/gbn/bdp/dao/TableCommonInfoDao.xml
### The error may involve com.gbn.bdp.dao.TableCommonInfoDao.selectTableList
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not corrently know of SID given in connect descriptor

起初已为是数据源的问题,换了一个数据源,重新启动还是这个问题。仔细一读错误内容,发现还是有蹊跷的,应该和数据库链接有关系。

自己开发使用IDEA,自带数据库链接工具,在链接工具中写的URL是(链接是成功的):

jdbc:oracle:thin:@10.101.120.11:1521/ora12c

而在配置文件中写的URL是(程序启动报错的):

<property name="jdbcUrl" value="jdbc:oracle:thin:@10.101.120.11:1521:ora12c" />

可能是写配置文件的时候没集中精力,发现问题之后在网上查了一下这个错误,说的是连接SID连接service_name是有区别的。

这里呢可以使用如下两个命令查下ora12c是sid还是service_name:

--在SQL命令行中使用如下两个语句查--查SID
select value from v$parameter where name='instance_name';--查service_name
select value from v$parameter where name='service_names';

查询结果:

SQL> select value from v$parameter where name='service_names';
value
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ora12cSQL> select value from v$parameter where name='instance_name';
value
value
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ora12c1

可见写错了。

配置文件里改成:

<property name="jdbcUrl" value="jdbc:oracle:thin:@10.101.120.11:1521/ora12c" />
成功连接,查出结果

解释一下SID和service_name的URL格式:

SID如下

jdbc:oracle:thin:@host:port:SID
例如: jdbc:oracle:thin:@localhost:1521:ora12c1 

service_name如下

jdbc:oracle:thin:@//host:port/service_name
例如: jdbc:oracle:thin:@//localhost:1521/ora12c

还有一种,比较少用的,使用TNSName的URL,如下

jdbc:oracle:thin:@TNSName
例如:  jdbc:oracle:thin:@TNS_ALIAS_NAME 配置如下
"jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=or12c2)))"

问题归结,还是自己对数据库了解不够,同志还需努力啊。

解决Oracle数据库报错ORA-12505的问题相关推荐

  1. oracle数据库报错12154,PL/SQL登录Oracle数据库报错ORA-12154:TNS:无法解析指定的连接标识符解决方法...

    本篇文章小编给大家分享一下PL/SQL登录Oracle数据库报错ORA-12154:TNS:无法解析指定的连接标识符解决方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. ...

  2. Oracle数据库备份报错12514,Oracle 数据库报错 ORA-12514解决办法

    Oracle 数据库报错 ORA-12514解决办法 绝对实用 如果orale数据库报ORA-12514 无监听程序 错误 就要listener.ora 和 tnsnames.ora 文件修改 一下如 ...

  3. 连接oracle数据库报错:ORA-12505

    连接oracle数据库报错:ORA-12505 今天在使用程序连接oracle数据库时本来很简单的填写url,用户名和密码,测试连接提示失败.和pl_sql 对比了下写的也没毛病,有图为证: 看了下数 ...

  4. ORACLE数据库报错ORA-00910: specified length too long for its datatype

    ORACLE数据库报错ORA-00910: specified length too long for its datatype 原因分析 先直接说下对于ORA-00910报错的原因:在于Oracle ...

  5. oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

    oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段 出现这个报错一般是两种情况,oracle的temp空间不足:存在性能非常差的带全表扫描的sql占用的资源 ...

  6. Oracle数据库报错ORA-00904: 标识符无效问题解决办法

    Oracle数据库报错ORA-00904: 标识符无效问题解决办法 一般来说,报错ORA-00904: 标识符无效主要是以下两种情况: 1.可能是由于字段名或者表名写错了,一定要仔细核对代码里面的字段 ...

  7. oracle数据库报错1033,Oracle联机日志出现错误ORA-16038 ORA-19809 ORA-00312 解决

    出现ORA-16038 ORA-19809 ORA-00312 Oracle 10g默认的归档日志存放在flash_recovery_area,而默认安装的时候该区间选择了2G大小当归档日志超过2G的 ...

  8. oracle数据库报错1033,ORACLE出现错误1033和错误ORA-00600的解决方法

    在非法关机以后,Oracle数据库经常会出现这个错误: EXP-00056:ORACLE错误1033出现 ORA-01033:ORACLE initialization or shutdown in ...

  9. oracle数据库报错代码,【案例】Oracle数据库dbv检查坏块时报错代码:6106解决办法...

    [案例]Oracle数据库dbv检查坏块时报错代码:6106解决办法 时间:2016-10-24 21:02   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研 ...

最新文章

  1. 在oracle的安全策略中,Oracle数据库的安全策略(转)
  2. JS权威指南笔记之数据类型
  3. 系统需求分析文档需要考虑的问题
  4. mysql增数据语句_Mysql 数据增删改查语句
  5. Unity开发《一起来捉妖》教程 | 3.随机妖怪位置及旋转提示
  6. Tapestry 教程(七)在Tapestry中一起使用Hibernate
  7. tcp协议可以提供什么服务器,什么是TCP协议?
  8. DeepZoom交互方式查看高分辨率图像技术知识点
  9. linux查看udp丢包数量,Linux下UDP丢包问题分析思路
  10. 如何做客户分析?客户分析的内容有哪些?
  11. 【Oracle】存储过程 遍历树 举例emp表的树状结构
  12. 计算机科学与技术单身率,中国大陆男女比例揭晓!大学单身率专业十强来了
  13. 高德地图 定位失败,10: 定位服务启动失败 解决办法
  14. 武汉大学计算机电气,武汉大学电气与自动化学院
  15. 通过高德地图API(WEB端)获取中国所有省市(可扩展)的列表
  16. System memory 249364480 must be at least 471859200
  17. 基于遗传算法的电动汽车有序充放电优化问题
  18. 陀螺仪加速度参数的标准计算
  19. 阿里游戏云事业部总经理马全治:推动阿里巴巴集团游戏生态联盟升级
  20. ChatGPT - 提示词

热门文章

  1. intellij背景护眼色调节
  2. 内存耗尽后Redis会发生什么
  3. 新娘结婚前8天遇害 新郎抱遗照殡仪馆办婚礼
  4. Python中Scrapy框架的代理使用
  5. 使用树莓派搭建家用 NAS
  6. TensorFlow2.0学习笔记-3.模型训练
  7. 表格table标签的属性及使用方式
  8. Illustrator 2023 Mac(Ai2023)v27.0中文版已发布,支持M1/M2/intel Mac处理器
  9. 基于Wireshark的TCP SACK重传介绍
  10. linux修改文件名字