`

使用Oracle遇到问题记录

    博客分类:
  • DB
阅读更多

Q1 . 应用程序中执行批量更新时(where条件中有in),出现错误: ORA-01795 maximum number of expressions in a list is 1000

原因:in() 括号中值的个数有限制

解决:1) 调整应用程序处理,超过1000的分批更新。

            2) 是否可以通过调整数据库配置来解决?

——2010-6-13部分已解决

 

Q2 . 通过JDBC连接串进行连接时,出现错误:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

原因:只配置了servicename,而没配sid

解决:在不修改oracle服务端配置的情况下,修改jdbc连接串:将jdbc连接串 @ 后的内容改为该连接的配置描述文字从 (DESCRIPTION  开始直到结束的所有内容(注意:要去掉换行),举例:

原jdbc连接串: jdbc:oracle:thin:@localhost:1521:test

修改后:jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost) (PORT=1521)) (CONNECT_DATA =  (SERVER = DEDICATED)  (SERVICE_NAME = test)  ))

            详见:http://twit88.com/blog/2008/05/29/new-jdbc-url-syntax-for-oracle-10g-jdbc-driver/

——2010-8-16已解决

 

Q3 . 删除表时,出现错误: ORA 15264

解决:drop table ora-600 15264 中所述进行操作。

——2012-8-30已解决

 

 

Q4 . Oracle XE 10g windows版本,java程序应用过程中,时有: ORA-12519 TNS:no appropriate service handler found

解决:see http://blog.csdn.net/wyzxg/article/details/2154274 

                ——2012-10-09已解决

 

Q . 2013-09  生产环境遇到几个DB问题:

1)  Caused by: java.sql.SQLException: No more data to read from socket

        at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1157)

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

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

        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)

        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)

        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:877)

        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)

        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1281)

        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)

        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)

        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1205)

 

2) 连接数据库时:IO Error: Connection reset

一篇参考:http://stackoverflow.com/questions/2327220/oracle-jdbc-intermittent-connection-issue

 

 解决:加 -Djava.security.egd=file:/dev/./urandom

 see: https://www.usn-it.de/2009/02/20/oracle-11g-jdbc-driver-hangs-blocked-by-devrandom-entropy-pool-empty/

 

Q . 2013-09  ORA-03111: break received on communication channel

参考:http://blog.csdn.net/woohooli/article/details/6364831

 

Q . 2013-09-13  ORA-00903: invalid table name

原因:表名里含有Oracle关键字或非法字符。

 

Q . 2017-03-03  网卡切换后进程僵死(jstack中显示oracle connection socket read)

原因:有若干线程处理任务,其中1个线程在进行batch操作,其他线程均在等待该线程任务执行完毕,

而在该batch操作过程中,网卡进行了切换,导致该DB连接实际上已经失效,而由于没有设置超时时间,

因此需要达到操作系统的网络超时时间才会触发异常。

解决:oracle jdbc连接属性中设置2个socket超时时间(单位ms)

	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="" />
		<property name="username" value="" />
		<property name="password" value="" />
		<property name="connectionProperties" value="{oracle.net.CONNECT_TIMEOUT=60000;oracle.jdbc.ReadTimeout=60000}"/>
	</bean>

参考:深入理解JDBC的超时设置

 

Q . 2018-09-12 java.sql.SQLException: IO 异常: SO Exception was generated
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)

原因:db连接串中间有空格

解决:去掉连接串中的空格

分享到:
评论

相关推荐

    ORACLE技巧 - 不同记录集的横向合并

    在程序设计过程中,往往遇到比较两个记录集的差异。如,判断原来传入的订单资料与后来传入的订单资料之间的差异,并且将差异的数据显示给用户。 实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据...

    使用Oracle数据库时的Web分页方法

    在WEB应用中,我们经常遇到需要从数据库搜索出满足某个特征的数据记录,再显示给特定用户。常常这些满足条件的记录如此之多,一方面在同一个页面显示显得异常...本文将和大家讨论一下使用ORACLE数据库时的WEB分页方法。

    Oracle数据库删除表中重复记录的方法三则.txt

    Oracle数据库删除表中重复记录的方法三则.txt

    使用Docker快速搭建Oracle开发环境的方法教程

    但是也发现一个问题,挂载本地卷遇到了麻烦。一旦挂载,就无法登陆了。从官方的issues中发现,有一个fork版本解决了这个问题,记录一下。 创建docker-compose工作目录 mkdir -p oracle/data cd oracle touch ...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    Oracle Applications DBA(Oracle应用程序数据库管理员)比“普通”的Oracle DBA(Oracle数据库管理员)门槛高了很了很多,不仅要有处理数据库问题的能力,还需要了解整个应用程序的构架,从大处着眼,整体考虑问题...

    oracle11g安装部署手册

    Oracle11g在windows服务器部署记录文档,以及遇到的问题和解决方法

    Oracle EBS API使用说明

    我们经常遇到一个问题:对于某个功能,Oracle是否提供标准的API给我们使用?如果有,则可以方便批量导入新的数据或者批量处理业务数据。 对于常用的EBS API说明以及相关的使用,黄建华的一篇文档&lt; Oracle EBS 常用...

    日积月累-oracle笔记

    oracle自学过程中的笔记,及遇到问题的记录及解答

    oracle学习笔记.txt

    超详细Oracle学习笔记,详细记录了oracle的学习过程中遇到的各种问题及基础知识,适合初中级oracle使用人员学习参考。

    oracle job 创建

    创建oracle job ,初学,遇到的问题日志记录

    将oracle数据库某张表的某两列相加并插入新的一列记录

    在公司实际的项目开发中,我遇到这样一个需求,需要将oracle数据库某张表的某两列相加形成新的一列。

    oracle dba 日记

    记录了一位成功的Oracle DBA的学习过程,详细记录了学习中遇到的问题,解决方法,心得

    Oracle12c部署安装手册

    里面详细记录了Oracle12c安装步骤一直系统安装后遇到的问题及处理方法!

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    10.3.5遇到问题时的验证 10.4 Grid Infrastructure故障检测 10.4.1 ohasd.bin不能启动成功 10.4.2 OHASD代理不能启动 10.4.3 ocssd.bin不能启动 10.4.4 c d.bin不能启动 10.4.5 gpnpd.bin不能启动 10.4.6其他...

    Oracle PL SQL程序设计 上 第五版(代码示例)

    能够帮助你充分利用pl/sql来解决数据库开发中遇到的各种问题,引导你掌握各种构建应用的技巧和技术,以便使你编写出高效、可维护的代码。《oracle pl/sql程序设计(第5版)》不但介绍了大量的oracle 11g的pl/sql新性能...

    Linux下oracle 11g安装笔记

    详细的描述了自己在Linux上全新安装oracle 11g最新版的过程,中途遇到了很多问题,都有记录以及解决方案,对初学oracle以及想对oracle有进一步了解的人有很大的帮助!

    记录一次EXPDP导出BLOB字段 遇到ORA-01555报错

    oracle expdp导出blob字段遇到ora-01555报错的解决方案

    如何确定Oracle数据库表重复的记录

     作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。 下面我们以表code_ref为例来讨论这个...

    Oracle安装遇到INS-30131错误的解决方法

    需要学习SDE配置相关知识,其中Oracle数据库安装遇到错误INS-30131,虽然未能最终解决,但找到了初步的思路,记录下来给大家提供参考。下文对很多知识的理解可能存在错误或不够精准,仅作参考。 软件:Oracle12cR1 ...

    Oracle字符集转换

    建好DB后发现字符集不对,岂非痛心疾首。是推倒重建,还是曲线救库? 以前都是用第一种方法。参考了Oracle官方文档,小试了把我的测试库...把字符集转换过程中遇到的问题和解决方法,以及详细攻略记录下来供大家参考。

Global site tag (gtag.js) - Google Analytics