`

使用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 数据库系统时,可能会遇到一些疑难问题,本文将从解决使用 Oracle SQL*PLUS 时没有监听器的问题开始,介绍一些相关的知识点。 标题:解决使用 Oracle 疑难问题 描述:解决使用 Oracle 中所遇到的...

    oracle中记录用户登录信息的触发器的例子

    ### Oracle中记录用户登录信息的触发器实例解析 #### 一、背景介绍 在Oracle数据库管理中,确保数据安全是一项至关重要的任务。其中,记录用户的登录信息(如登录时间、用户名和客户端IP地址等)可以帮助管理员更...

    Oracle性能问题总结

    Oracle 性能问题是数据库管理员和开发者经常遇到的一个棘手问题,本文总结了 Oracle 性能问题的解决方案,涵盖了物理模型优化、索引相关、SQL 相关、表设计和其他几个方面。 在物理模型优化方面,需要合理分配 SGA...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先,确保你拥有正确的工具。在这个案例中,你需要MySQL 5.6.37、Oracle 11g以及Oracle SQL Developer...

    通过.bat文件连接oracle 插入数据库记录

    标题中的“通过.bat文件连接Oracle 插入数据库记录”指的是使用批处理(.bat)脚本来操作Oracle数据库,实现数据的插入功能。Oracle是全球知名的关系型数据库管理系统,而批处理脚本则是在Windows操作系统中运行的一...

    Oracle常见问题总结

    在使用Oracle 11g进行数据备份时,可能会遇到一个问题:使用`exp`命令导出数据库时,空表(即没有任何数据的表)并不会被包含在导出文件中。这是因为Oracle 11g为了节省空间,默认情况下不会为这些空表分配存储空间...

    最全的Oracle中文使用手册

    Oracle是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。Oracle数据库提供了丰富的功能,包括数据存储、查询、...对于开发者和DBA来说,掌握Oracle的使用是提升工作效率和解决问题的关键。

    oracle删除重复记录性能分析

    在数据库管理中,经常会遇到数据清理的需求,尤其是在Oracle数据库中处理重复记录时。本文旨在通过对比几种不同的方法来删除Oracle中的重复记录,并分析其性能差异,从而为数据库管理员提供有效的解决方案。 #### ...

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

    在Oracle数据库管理中,经常会遇到需要处理表中的重复数据的情况。重复数据不仅会占用不必要的存储空间,还可能导致数据统计错误或业务逻辑混乱等问题。因此,掌握如何有效地删除Oracle数据库表中的重复记录是一项...

    Oracle常见问题的错误码大全

    在日常使用过程中,由于各种原因,我们可能会遇到各种错误,这些错误通常会以错误码的形式呈现,帮助管理员快速识别问题所在。"Oracle常见问题的错误码大全"是一份非常实用的参考资料,它包含了Oracle数据库在运行...

    一次不太愉快的Windows Server 2008 R2 SP1上安装ORACLE 10G经历

    在本文中,我们将深入探讨在Windows Server 2008 R2 SP1操作系统上安装Oracle 10G数据库过程中遇到的一些问题以及相应的解决方案。首先,我们需要明确的是,Oracle 10G是针对较旧的操作系统设计的,因此在较新的...

    oracle8.1.7安装问题

    如果以上方法仍然无法解决问题,可以考虑使用第三方卸载工具(如Revo Uninstaller等)来帮助彻底卸载Oracle 8.1.7及其所有相关组件。 #### 四、注意事项 - 在执行上述操作前,请确保对重要数据进行了备份。 - 卸载...

    oracle 12c rac的安装记录

    Oracle 12c Real Application Clusters (RAC) 是一种高可用性和可伸缩性的数据库解决方案,它...在实际操作中,可能还会遇到其他复杂情况,如许可证管理、性能优化和安全配置,这些都是RAC部署和运维中不可忽视的部分。

    ORACLE+UNIX易错问题集锦

    文档"ORACL_UNIX_Error_Trouble.doc"可能详细记录了这些问题的出现情况、解决步骤以及预防措施,对于Oracle和UNIX的使用者来说是一份宝贵的参考资料。学习并掌握这些知识点,能够提升你在面对类似问题时的处理能力,...

    Python连接oracle工具cx_Oracle官方文档

    如果在安装过程中遇到问题,可以参考“故障排除”部分。cx_Oracle使用ODPI-C库来实现Python与Oracle数据库的连接。安装好cx_Oracle后,如果尚未安装Oracle客户端,那么还需要进行安装。cx_Oracle支持Oracle客户端...

    Oracle常见问题的解决方法

    在Oracle数据库中,如果遇到表中存在坏块的情况,这通常意味着数据的完整性受到威胁。坏块可能由硬件故障、电源问题或软件错误引起。解决这一问题的关键步骤如下: 1. **定位坏块**:首先,需要确定坏块的具体位置...

    解决oracle安装完成后DBCA无法执行问题

    在Oracle数据库的安装过程中,有时会遇到DBCA(Database Configuration Assistant)无法正常执行的问题,这通常是由于系统环境或安装过程中的某些配置不正确导致的。本文将针对标题和描述中提到的问题,即在CentOS...

Global site tag (gtag.js) - Google Analytics