最近,在做完数据库迁移后,领导要求所有的前端应用必须使用oracle的服务名连接数据库。所以在迁移数据库之前对公司内部开发系统做了全面准备。但是在迁移数据库的当晚还是遇到了问题,因为忘记考虑第三方的应用系统。本人在迁移完数据库后,疲惫的回到家中。结果屁股还没有坐热,就被第三方开发的人叫了过去,原因是他们无法连接数据库。

系统环境:

数据库——Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production RAC

应 用——JDK1.5

问题原因:

检查web server的错误日志,发现以下错误信息:

Invalid connection string format, a valid format is:“host:port:sid”(无效的字符串连接格式,有效的格式:“host:port:sid”)

检测应用程序使用的jar包,发现有ojdbc14.jar。故而,怀疑是ojdbc14.jar的原因。所以编写测试程序,结果能够使用服务名(格式:“host:port/service_name”)连接数据库。将ojdbc14.jar换成11.2.0.3.0自带的ojdbc5.jar后重启应用结果还是抛出Invalid connection string format, a valid format is:"host:port:sid"错误。单独测试ojdbc5.jar,结果没有问题。所以,怀疑应用程序所使用的jar包中可能有早期的ojdbc。结果不出所料,发现了classes111.jar和classes12.jar。单独测试classes111.jar和classes12.jar,结果发现不能够使用服务名(格式:“host:port/service_name”)连接数据库。将classes111.jar和classes12.jar从项目中删除,重启应用服务器一切正常

解决方法:

更换高版本的ojdbc即可,但切记一定删除原有ojdbc。

以下是各版本数据库的ojdbc的支持情况:

|数据库版本 | JDBC 支持JDK | service_name | SID |
8i classes111.jar 1.5或1.6 不支持 支持
9i classes12.jar 1.5或1.6 不支持 支持
10g ojdbc14.jar 1.5或1.6 支持 支持
11g ojdbc5.jar 1.5 支持 支持
ojdbc6.jar 1.6 支持 支持

数据库版本 JDBC 支持JDK service_name SID
8i classes111.jar 1.5或1.6 不支持 支持
9i classes12.jar 1.5或1.6 不支持 支持
10g ojdbc14.jar 1.5或1.6 支持 支持
11g ojdbc5.jar 1.5或1.6 支持 支持
11g ojdbc6.jar 1.5或1.6 支持 支持

Java使用ojdbc连接Oracle数据库时不能使用服务名连接的问题相关推荐

  1. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  2. python连接oracle数据库_深入理解Python3.6连接Oracle数据库

    Python3.6连接Oracle数据库的方法详解 本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://p ...

  3. java ora-12505_JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法

    转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述: 今天使用jdbc连接oracle 10.2.0 ...

  4. 通过JDBC连接Oracle数据库时进行查询操作时产生BigDecimal转换异常的处理

    使用MySQL的时候不太会出现这样的情况,因为MySQL的数据类型比较明确,都有对应的类型可以进行操作,而Oracle的基本数据类型都是number类型的,从Oracle查到的数据到Java中很容易产 ...

  5. vs连接oracle数据库报错,用VS连接oracle数据库时ORA-12504错误

    Android中的AlertDialog使用示例二(普通选项对话框) 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Andro ...

  6. SecureCRT 连接oracle数据库xServer图形界面服务

    1.oracle用户登录到linux图形界面中 2.启动SecureCRT,进入Options->Session Options->Remote/X11 选中Forword X11 Pac ...

  7. oracle数据库没有选项,创建oracle数据库时,出现ORA-00922: 选项缺失或无效

    sdd53HOME 新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题,如图: 原因:一般是语句的语法有问题.比如命名不对,关键字写错等等.对于非标准的命名,一般采用双引号来创建. ...

  8. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  9. 在本机用Toad远程连接Oracle数据库

    在本机用Toad远程连接Oracle数据库 在本机利用Toad连接远程数据库,需要以下操作步骤. 第一步:安装Oracle数据库 安装Oracle数据库的时候,需要注意以下几点: 1)         ...

最新文章

  1. CentOS7.5安装配置PostgreSQL11
  2. R语言ggplot2可视化:为箱图的均值进行连线、将多个分组的均值连接起来Joining means on a boxplot with a line
  3. 和李洪强一起学设计01 PS第一天
  4. java对象怎么创建_Java对象是怎么创建的(通过对象的创建,了解JVM内存结构)...
  5. oracle转mysql总结经验,oracle转mysql总结(转)
  6. C++学习之路 | PTA乙级—— 1087 有多少不同的值 (20 分)(精简)
  7. 新手如何学习C语言/C++,教你一年时间是拿到年薪50万
  8. mysql的索引缺点_「缺点有哪些」数据库索引是什么 有什么优缺点 - seo实验室
  9. 2015计算机考研重点,2015考研计算机复习:数据结构重点归纳_跨考网
  10. 【报告分享】2019年中国互联网企业战投发展白皮书.pdf(附154页pdf下载链接)...
  11. IntelliJIDEA和tomcat在浏览器js乱码问题解决
  12. 406. 根据身高重建队列
  13. python 中 * 的使用和表示含义
  14. 动态RAM的刷新(资料来源于网上自己查找搜索)
  15. 2021全国大学生电子设计大赛题目汇总
  16. java节奏大师_节奏大师源码
  17. BF、KMP、BM、Sunday算法讲解
  18. Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operat
  19. 华为2020软件精英挑战赛初赛、复赛、决赛代码+心得分享
  20. SCI论文发表的流程是怎样的?

热门文章

  1. [51nod1079]中国剩余定理
  2. Apache常用配置项
  3. 【JavaScript 1—基础知识点】:宏观概述
  4. 【Android】开发优化之——调优工具:TrackView,Method Profiling
  5. Android UI开发第三十三篇——Navigation Drawer For Android API 7
  6. 丢失__EVENTTARGET _dopost Asp.net自带隐藏域和脚本的现象
  7. 查询方式中断方式_【每日“一”题】中断方式
  8. java final类的写法_重拾JavaSE基础——抽象类、接口、代码块、final和枚举
  9. 所有的工程师都鄙视 php 工程师.,程序员的鄙视链(所有工程师都鄙视php工程师23333)...
  10. 十九、 彻底掌握金融量化交易库Talib