如何解决SQLException:违反协议Oracle JDBC驱动程序问题
显然,将-d64添加到Java命令行可以解决此问题。看起来像是Solaris 64位问题。
解决方法
我得到以下称呼:
java.sql.SQLException: Protocol violation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:766)
at oracle.jdbc.driver.T4CPreparedStatement.do0all8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1225)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284)
Oracle系统在Solaris 5.10上运行10.2.0.3.0。jdbc驱动程序在JDK
1.6.0_21上运行(如果已导入,则Java也在Solaris
5.10机器上运行)。我尝试了几种不同的oracle瘦驱动程序,包括最新的和看起来与oracle版本完全匹配的驱动程序。
我正在运行的查询非常简单:“按key1,key2,key3从some_table中选择*”然后遍历结果集并写入文件。该表大约有1200万行,因此我希望该过程运行很长时间,但是它似乎会在5到15分钟之内消失。每次运行它时,它都会在不同的行上爆炸,因此我认为问题不在于数据。
我找到了oracle警报日志,但是我无法确定其中是否有任何与我的进程相关的信息。不过,我不是Oracle专家,也许我需要研究一下Oracle设置。奇怪的是,我在不同的连接上运行了大约五个这样的查询(几个比较复杂),只有两个最简单的查询遇到过此问题。
对于缩小问题范围的任何帮助或想法,将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。