今天在项目中遇到一个异常: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 ora-各种常见java.sql.SQLException归纳
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
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、...
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、...
1.4 创建监听文件,并添加内容 #vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521)) (CONNECT_DATA = (SERVER = ...
instantclient-basic-nt-19.8.0.0.0dbru.zip(我电脑上用的是这个版本连接的Oracle11g) 3、配置window操作系统环境变量(新建以下两个变量) 此电脑(右键)→属性→高级系统设置→环境变量→系统环境变量→新建 ...
kettle连接oracle12C--报错ORA-28040 没有匹配的验证协议
ORA-01157解决方案
注:Oracle客户端向下兼容,故也可以连接11g的数据库 下载页面皆为:http://www.oracle.com/technetwork/topics/winsoft-085727.html 1.下载instantclient-basic-nt-12.1.0.2.0.zip解压至某路径,如:D:\Database...
Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法
oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht
-- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... ...
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
2008/06/25 13:30:57 - oracl - ERROR : java.sql.SQLException: ORA-01722: 无效数字 2008/06/25 13:30:57 - oracl - ERROR : at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法.pdf