解决Java连接Oracle 12c存在的问题

感谢作者

原文链接:https://blog.csdn.net/peng_wei_kang/article/details/80403486

1.发现项目报以下错误:

  1. Caused by: java.sql.SQLException: ORA-28040: 没有匹配的验证协议

  2.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)

  3.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388)

  4.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381)

  5.  

    at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:427)

  6.  

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)

  7.  

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)

  8.  

    at oracle.jdbc.driver.T4CTTIoauthenticate.doOSESSKEY(T4CTTIoauthenticate.java:390)

  9.  

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:356)

  10.  

    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)

  11.  

    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)

  12.  

    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

  13.  

    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)

解决方法:

在oracle安装目录下的\product\12.2.0\dbhome_1\network\admin\sqlnet.ora文件中新增一行,内容如下:

SQLNET.ALLOWED_LOGON_VERSION=8

SQLNET.ALLOWED_LOGON_VERSION=8

接着重启项目。

2.遇到以下错误:

  1. Caused by: java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝

  2.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)

  3.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388)

  4.  

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381)

  5.  

    at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564)

  6.  

    at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431)

  7.  

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)

  8.  

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)

  9.  

    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)

  10.  

    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)

  11.  

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)

  12.  

    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)

  13.  

    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)

我确定账号密码没有错误,用sqlplus以及sql developer都可以连接,但通过项目连接就存在这个问题。

解决问题:

通过管理员账号重新去修改一下当前账号的密码为原来的密码:

  1.  
  2. SQL< conn system/root;  (注意:此处是使用自己的管理员账号和密码去连接)
  3. SQL< alter user c##ansibee identified by ansibee;
  4.  

原文地址:https://www.cnblogs.com/ansibee/p/9656638.html

时间: 2024-08-06 03:41:44

解决Java连接Oracle 12c存在的问题的相关文章

解决java连接oracle报sid错误

上次使用jdbC连接oracle数据库报了一个关于sid的错误.无法连接至sid.解决方法是使用如下格式一方法连接 格式一: : jdbc:oracle:thin:@//<host>:<port>/<service_name> Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE 注意这里的格式,@后面有//, 这是与使用SID的主要区别. 这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但

java连接oracle数据库的实现代码

package connectionOracleDatabase; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ConnectionOracleDa

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

一个非常标准的Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracl

oracle入门(5)——java连接oracle数据库

[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安装了oracle就有自带驱动了,路径在:安装目录\product\11.2.0\dbhome_1\jdbc\lib,下面有多个jar包,选择适合自己的一个(最简单的办法就是导入项目后看看能连接不,能连接的就是适合的驱动) 2.代码: 关于url:@后面是IP:端口,这两个不知道怎么查的请看博文:ht

java连接oracle执行存储过程小程序

下面是一个java连接Oracle 执行一个没有返回值的存储过程的小例程. package com.test; import java.sql.*; public class procedure {     public static void main(String[] args) {         Connection ct=null;         CallableStatement cs=null;         try {             Class.forName("o

Java连接Oracle数据库常用方法

JDBC的六大步骤: 注册驱动 获取连接 获取执行sql语句对象 执行sql语句 处理结果集 关闭资源 oracle URL: jdbc:oracle:thin:@localhost:1521:SID jdbc:oracle:thin:@//localhost:1521:SERVICENAME MySQL URL: jdbc:mysql://localhost:3306/数据库名称 thin:小型驱动,驱动方式 localhost 本机ip地址 127.0.0.1 SID:数据库的SID SER

Kettle连接Oracle 12c

安装Oracle我用的是Win10 64位,官网下载64位 Oracle 12c,两个文件.解压第一个文件之后安装,但是安装到一半错误,提示缺失文件.后来发现原来两个文件要单独解压,解压后根据目录合并在一起.再次安装,安装到88%卡住不动了.我以为安装又失败了,就关了,但是发现可以用,就这么用吧. 创建用户Oracle数据库分为CDB和PDB,他们之间的关系,想了解可以查相关资料,不在此详述.简单来说CDB是一个数据库容器,PDB是可插拔数据库.默认登陆为CDB,只能创建COMMON用户.COM

Java连接Oracle数据库

package com.db;              import java.sql.Connection;       import java.sql.DriverManager;       import java.sql.PreparedStatement;       import java.sql.ResultSet;              public class DBConnection {           // 连接Oracle数据库           public