java ora 010_oracle - OCI无效操作ORA-01010 - 堆栈内存溢出

我正在运行批处理应用程序来处理大量数据文件并将数据放入Oracle 11g数据库。 我使用的是Java 1.6.20,ojdbc6和ucp11.2。 间歇性地,我得到ORA-01010无效操作SQLExceptions。 当我查看此错误的含义以及要采取的操作时:

ORA-01010:无效的OCI操作

原因:

以下之一:1)您尝试了无效的OCI操作。 2)您正在使用与7.1版(或更高版本)库链接的Oracle客户端应用程序,环境变量ORA_ENCRYPT_LOGIN设置为TRUE,并且您尝试连接到7.0(或更低版本)Oracle Server。 3)您已连接到7.1版(或更高版本)的Oracle Server,初始化参数DBLINK_ENCRYPT_LOGIN设置为TRUE,并且您尝试使用指向7.0版(或更低版本)Oracle Server的数据库链接。 4)您已连接到9.0.2(或更高版本)的Oracle Server,并且您尝试使用指向9.0.1(或更低版本)Oracle Server的数据库链接进行分布式自治事务。

行动:

由于上述原因:1)不要使用无效的OCI操作。 2)如果您不希望在分布式数据库中使用加密的连接密码,请将ORA_ENCRYPT_LOGIN设置为FALSE。 如果要使用加密的连接密码,则必须将所有Oracle服务器升级到7.1(或更高版本)。 3)如果您不希望在分布式数据库中使用加密数据库链接,请将DBLINK_ENCRYPT_LOGIN设置为FALSE。 如果要使用加密数据库链接,则必须将所有Oracle服务器升级到版本7.1(或更高版本)。 4)不要在9.0.1(或更低版本)的Oracle Server上尝试分布式自治事务。

这对我没有意义,因为我使用的是最新的JDBC驱动程序和最新版本的Oracle。 如果问题是登录,为什么它会工作在90-95%而不是其他5-10%? 我确保所有的Oracle服务器都是11g。 我还提出了ORA-01010信息,以便任何试图回答这个问题的人可以避免这样做,认为他们找到了答案。 除非你能解释这个看似神秘的消息,这个消息似乎与我的问题没什么关系,否则不要打扰。

根据以下评论进行更新:

这是确切的错误:

Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [select sum(FREQ) from CONTRIBUTOR_DETL where EXTRACT(MONTH FROM DOS) BETWEEN 6 and 8 and CONTRIBUTOR_HDR_ID = ? and ERROR_FOUND = 'N']; SQL state [72000]; error code [1010]; ORA-01010: invalid OCI operation

; nested exception is java.sql.SQLException: ORA-01010: invalid OCI operation

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:665)

at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:673)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:728)

at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:744)

at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:775)

at org.ddpa.dsc.dao.impl.DscSummaryDaoImpl.getAcceptedOccurrencesBySummerQuarter(DscSummaryDaoImpl.java:176)

at org.ddpa.dsc.reports.DscSummaryReport.getSummaryReport(DscSummaryReport.java:132)

at org.ddpa.dsc.pre.DscPreprocessor.preprocessFile(DscPreprocessor.java:195)

at org.ddpa.dsc.Main.main(Main.java:33)

Caused by: java.sql.SQLException: ORA-01010: invalid OCI operation

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)

at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)

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

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

at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)

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

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

at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)

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

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

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

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

at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:110)

at $Proxy3.executeQuery(Unknown Source)

at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:643)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值