应用环境 :
应用服务器linux,中间件:tomcat 6,jdk版本:1.6.0_43,jdbc驱动:ojdbc6,数据库oracle12c pdb。
问题描述:
环境搭建完成之后, 连接使用的连接串格式为:jdbc:oracle:thin:@127.0.0.1:1521/pdborcl
在应用连接数据库的时候一直报错:
java.sql.SQLException: Io 异常: Invalid connection string format, a valid format is: "host:port:sid" 。
解决过程:
1、首先在应用当中做了很多的尝试,无法得到解决,网上查询资料,说是低版本的ojdbc驱动就会出现这样的问题,但是使用的驱动是没有问题的,版本都是匹配的。
2、之后改变连接串格式为:jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.9.20.41)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MANAGER))),但是这种方式还是报错了,查询资料之后需要在oracle的安装目录的/NETWORK/ADMIN/sqlnet.ora中添加版本支持的参数,添加完成参数之后本地连接本地库成功。但是服务器是oracle一体机,做了集群,只能操作数据库,不能访问系统,无法做这样的尝试,并且跟oracle一体机的管理人员沟通表示,我们的连接串(jdbc:oracle:thin:@127.0.0.1:1521/pdborcl)是没有问题的,而且必须是这样,所以还是得解决在原先连接串下的问题。
3、本机使用java-jdbc的小例子,用ojdbc6驱动连接数据库没有任何问题,可以查出数据,那么驱动包是没有问题的。
4、后来请教部门技术专家分析认为是jar包加载的问题,按照工程启动时jar包的加载顺序:jdk-tomcat-project,提供的解决办法,将ojdbc6在jdk相关jar包目录、tomcat 相关jar包目录中都拷贝了ojdbc6驱动,启动正常,问题解决。
5、之后我试了一下,只有将ojdbc6包拷贝到jdk的jre的lib(jdk1.6.0_43\jre\lib)下才好用,但是在jdk中未发现其他类似jdbc包的痕迹,暂不清楚是那个文件引起的这个错误。
解决方法:
将ojdbc6包copy到jdk1.6.0_43\jre\lib或相关加载路径下优先去加载驱动包,问题解决。
相关推荐
《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...
jdbc连接oracle12c的驱动文件(ojdbc6,ojdbc8)
Oracle12C 12.2.0.1 JDBC 驱动 Oracle Database 12c Release 2 (12.2.0.1) drivers
Kettle链接Oracle数据库比较坑,为试了很多驱动都不能正常驱动,一会报没有发现驱动,一会报字符集问题,我找我们公司大佬要了一个驱动,直接可以驱动起来,特此分享! 备注:解压jdbc压缩文件,将里面所有的jar...
《Oracle 12c数据库基础教程》教学课件—02安装和卸载Oracle 12c数据库.pdf《Oracle 12c数据库基础教程》教学课件—02安装和卸载Oracle 12c数据库.pdf《Oracle 12c数据库基础教程》教学课件—02安装和卸载Oracle 12c...
安装oracle 12c 用Navicat for oracle连接数据库cannot load OCI DLL
kettler连接oracle 12c数据库(目前只能用JNDI)
详细描述了Centos7.2系统在命令行界面下如何安装Oracle12C数据库的过程
在Oracle 12C数据库数据中连接到PDB(添加scott普通用户)
Oracle12c数据库基础教程Oracle12c数据库对象管理.pptx
Oracle 12c数据库体系结构图文详解手册
1.1.5 通过DBCA创建12c可插拔数据库容器 10 1.2 在线迁移活跃的数据文件 11 1.3 表分区或子分区的在线迁移 12 1.4 不可见字段 12 1.5 相同字段上的多重索引 13 1.6 DDL日志 13 1.7 临时undo 13 ··········...
Oracle JDBC驱动包有多个版本,选错ojdbc驱动,会导致各种莫名其妙的错误,每个ojdbc版本对应的Oracel版本、JDK版本都不一样,压缩包里面有详细说明。
java连接oracle 12c时,报 错误ORA-28040:没有匹配的验证协议 ,需要把lib下面增加ojdbc7.jar包 ;即可解决;
Oracle 12c 数据库链接驱动包。ojdbc7.jar包。可解决链接时的ORA-28040错误。
《Oracle 12c数据库基础教程》教学课件—07数据库对象管理.pdf《Oracle 12c数据库基础教程》教学课件—07数据库对象管理.pdf《Oracle 12c数据库基础教程》教学课件—07数据库对象管理.pdf《Oracle 12c数据库基础教程...
非常完整的Oracle12c 驱动包 JDBC,包含:ojdbc8_g.jar等五个jar文件
Oracle 12C PDB 维护基础介绍
《Oracle 12c数据库基础教程》教学课件—11ADONET数据访问技术.pdf《Oracle 12c数据库基础教程》教学课件—11ADONET数据访问技术.pdf《Oracle 12c数据库基础教程》教学课件—11ADONET数据访问技术.pdf《Oracle 12c...
Kettle9 jdbc连接Oracle12c驱动,网上找了好多都不能用最后整合了datagrip里的jdbc 最终版本,亲测可用。 解压jdbc压缩文件,将里面所有的jar文件拷贝到Kettle目录的lib目录,重启Kettle即可