今天在项目中遇到一个异常:Oracle ORA-3137[12333] 关闭的链接java.sql.SQLRecoverableException: 无法从套接字读取更多的数据 ,后来我在网上找了一下解决方案发现有两个:第一个解决方案:换oracle驱动,把驱动版本换成11.2的,但是尝试了一下没有效果,所以使用了第二个解决方案:在PLSQL执行alter system set "_optim_peek_user_binds"=false,然后重启一下服务器就没有问题了,于是我在网上查看了一下“_optim_peek_user_binds”是什么意思,后来读了一片文章才发现原来_optim_peek_user_binds默认为true,就是当sql第一次执行之后进行预编译,第二次传递进来的参数就不会进行编译,直接解释查询(估计preparedStatement对象也是通过这个实现的),所以我每次使用preparedstatement对象查询后他就会把第一次编译的sql直接解释,这就有可能会造成一种错误:如果某个列的倾斜性很厉害,那么使用BIND PEEKING就是不安全的,因为不同的参数代入,只能走第一次执行时的执行计划,那么执行计划就可能会执行错误。
但是把"_optim_peek_user_binds"=false有个缺点就是执行效率低下,有可能每次都要编译sql(这是我猜想的)。
以下是我找的文章:http://www.2cto.com/database/201203/121737.html
分享到:
相关推荐
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
Oracle ORA 异常处理详解 Oracle 是一个强大的关系数据库管理系统,然而,在使用 Oracle 时,总是会遇到各种错误信息,这些错误信息是Oracle抛出的异常信息,用于提示开发者出现了什么问题。了解这些错误信息是...
在Oracle数据库操作中,我们经常会遇到与`java.sql.SQLException`相关的异常。这个异常通常是Java应用程序在尝试与Oracle数据库进行交互时出现的问题。本篇将详细探讨`java.sql.SQLException`的各种常见类型及其解决...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
在解决 ORA-01157 问题之前,需要确保数据库处于关闭状态,以免造成数据丢失或其他更严重的问题。可以通过以下命令关闭数据库: ```sql shutdown immediate ``` 如果遇到如下错误提示: ``` ORA-01109: 数据库未...
Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接工具,用于在Linux系统上与Oracle数据库进行通信。这个特定的版本,“oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm”,是针对64位Linux...
1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、...
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
Oracle数据库不同版本间的客户端与服务端的连接问题通常涉及到安全和兼容性配置,这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决...
1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、...
Kettle是一款流行的开源ETL工具,由Pentaho公司开发,它允许用户从多种数据源抽取数据,并进行处理后再加载到其他目标系统。Oracle 12c则是一款先进的企业级关系型数据库管理系统,广泛应用于大型企业的数据存储和...
Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接工具,它允许应用程序无需完整安装Oracle Database Server即可与Oracle数据库进行通信。在这个特定的版本“oracle-instantclient-12.2.0.1.0-1.x86_...
注:Oracle客户端向下兼容,故也可以连接11g的数据库 下载页面皆为:http://www.oracle.com/technetwork/topics/winsoft-085727.html 1.下载instantclient-basic-nt-12.1.0.2.0.zip解压至某路径,如:D:\Database...
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...
它由Sun Microsystems开发并被纳入Java SE(标准版)的一部分,允许开发者在Java应用程序中执行SQL语句,实现数据的增删改查。JDBC驱动是连接Java应用程序和数据库之间的桥梁,不同的数据库需要对应的JDBC驱动。 1....
Oracle驱动包`ojdbc6-11.2.0.4.0-atlassian-hosted.jar`是Oracle公司为Java应用程序提供的一种数据库连接驱动,主要用于与Oracle数据库进行交互。这个驱动包是Oracle JDBC Thin驱动的特定版本,适用于Java 6环境。在...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级应用、数据分析以及互联网服务等领域。在Java编程中,为了与Oracle数据库进行交互,我们需要使用特定的数据库连接驱动,这就是ojdbc6驱动的...