gpt4 book ai didi

尝试在 Oracle 11.2.0.2.0(64 位)中获取连接时出现 java.lang.ArithmeticException

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:33 24 4
gpt4 key购买 nike

我目前在 Oracle 中使用 Java 存储过程,在尝试在我的 Java 代码中建立连接时发现了一些奇怪的行为。

我的 Java 被打包成一个 jar 文件,然后使用 loadjava 部署到 Oracle 中命令行实用程序。 package然后在数据库中创建,通过调用规范将指定 Java 类中的每个方法映射到 PL/SQL 函数。

我正在使用的一些列是 CLOB秒。在 Java 中,我尝试提取此 CLOB 的值(在调用规范中映射为 oracle.sql.CLOB )到 String :

private static String getStringFromCLOB(CLOB clob) throws SQLException {
long length = clob.length();
return clob.getSubString(1, (int) length);
}

当我运行这段代码时,我在 SQL*Plus 中得到以下堆栈跟踪:

java.lang.ArithmeticException: / by zero
at oracle.jdbc.driver.T2SConnection.<init>(T2SConnection.java:107)
at oracle.jdbc.driver.T2SDriverExtension.getConnection(T2SDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:481)
at oracle.jdbc.driver.OracleDriver.defaultConnection(OracleDriver.java:505)
at oracle.sql.DatumWithConnection.getPhysicalConnection(DatumWithConnection.java:53)
at oracle.sql.DatumWithConnection.getInternalConnection(DatumWithConnection.java:177)
at oracle.sql.CLOB.getDBAccess(CLOB.java:1383)
at oracle.sql.CLOB.length(CLOB.java:197)

在我刚刚看到 Exception 的消息之前所以我用 try / catch 包裹了有问题的方法的内容所以我可以将完整的堆栈跟踪转储到 System.out .

值得注意的是,我已经在 Oracle 11.2.0.1.0(32 位)上使用了它,但它在 Oracle 11.2.0.2.0(64 位)上不起作用

我还有其他 Java 支持的 PL/SQL function工作没有问题。只有那些尝试建立连接的人才会失败。

我看过<ORACLE_HOME>\jdbc\lib jar 虽然名称相同,但在这两个发行版中似乎有所不同。目录中的 jar 是(显示 11.2.0.1.0 大小和 11.2.0.2.0 大小):

  • ojdbc5.jar (1,950KB | 1,983KB)
  • ojdbc5_g.jar (3,010KB | 3,271KB)
  • ojdbc5dms.jar (2,374KB | 2,489KB)
  • ojdbc5dms_g.jar (3,030KB | 3,291KB)
  • ojdbc6.jar (2,062KB | 2,102KB)
  • ojdbc6_g.jar (3,323KB | 3,782KB)
  • ojdbc6dms.jar (2,594KB | 2,698KB)
  • ojdbc6dms_g.jar (3,344KB | 3,805KB)
  • simplefan.jar (20KB | 20KB) <-- 可能相同

这些 jar 的 list 文件确认它们是为特定版本构建的,即 11.2.0.1.0 或 11.2.0.2.0。是否有可能在 11.2.0.2.0 中引入了错误?或者它更有可能是用户,即我的错误:-)

此外,oracle.jdbc.driver.T2SConnection 在哪里?直播课?

非常感谢任何帮助/指导。如果您需要更多信息,请告诉我。

最佳答案

我在密码到期时遇到了这个问题。我只更改密码就解决了这个问题。

关于尝试在 Oracle 11.2.0.2.0(64 位)中获取连接时出现 java.lang.ArithmeticException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com