- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前在 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/
我已经为数据表实现了 LazyLoading。当我使用分页浏览数据表时,出现以下异常。 com.sun.faces.context.PartialViewContextImpl processPart
这个问题已经有答案了: Operator precedence in Java (3 个回答) 已关闭 4 年前。 当我尝试编写真值表时,我试图找出算法,然后我发现了一个可行的算法。但是现在我不明白为
该程序可以正确计算带分数。我希望 while 循环在输入两个零后终止。但是,当我输入由空格分隔的两个零时,我得到“Exception in thread "main"java.lang.Arithme
我有一个 JAVA(在 Android 上运行)方法,它偶尔会因被零除而捕获 ArithmeticException,尽管变量 inSampleSize 在循环之前设置为 1,并且每次只乘以 2。以下
我正在用 Java 做这个数独求解器,由于某种原因,我的代码中有一个我无法修复的错误。我的代码有一个 guess 函数,它在检查每个框中的 1-9 数字的同时检查数字是否已经写入。 错误在行中: e
这个问题在这里已经有了答案: try-catch for division by zero (7 个答案) 关闭 7 年前。 我一定是做了什么蠢事。但我似乎无法弄清楚为什么这个简单的代码不起作用。
我想使用标准的 java MonetaryConversions 来转换货币。 乍一看它工作得很好而且简单: @Test public void testConversion()
@Override public StreamObserver mdtDialout(StreamObserver responseObserver) { return new StreamO
我想修改ArithmeticException输出消息。因此,为此我做了一些实验。我通过 ExtenderClass 类扩展了 ArithmeticException 类。这个问题的重点不仅在于找到修
为什么这段代码不抛出ArithmeticException?看看: public class NewClass { public static void main(String[] args)
该方法的目的是迭代一个名为 grid[][] 的二维整数数组,并根据最大和最小值将整数转换为 100 到 250 之间的较小范围(原来的最小值变为 100 ,原来的最大值变成250,中间的一切都分别计
我在解决从 Student 类中的 getAverageScore() 方法中获取的 ArithmeticException 时遇到问题。我正在尝试编写一个程序来读取以下文本文件 scores.txt
我正在使用计算器并使用 NetBeans GUI 生成器,因此它可能有点不清楚和令人困惑。(完整代码 http://pastebin.com/ZLcM74ZQ ,因为它太长了) package rec
我正在研究一种算法来检查数字是否为质数,并且需要处理非常大的数字,因此我正在使用 BigInteger 类。问题是抛出此异常ArithmeticException BigInteger 会溢出支持的范
我正在用JUnit练习,这是我想测试的简单方法 public float divide(int a, int b){ return (float)a/(float)b; } 这是测试(Ma
我对整个捕获处理异常概念有点陌生,我想知道为什么抛出 ArithmeticException 不会在退出时产生异常错误消息(在本例中/为零),而是在编译期间产生异常错误消息。 不应该正常编译然后在屏幕
我们在客户机器上的以下行中得到一个ArithmeticException(算术运算中上溢或下溢。)。我们无法在任何 PC(客户或我们的)上复制它: var actualFullness = (byte
下面的代码执行时没有任何歧义的编译错误,输出是“ArithmeticException”。各位大侠能帮我看看原因吗。 class Test { public static void main(
我正在尝试在 Android 应用程序中实现 RSA 算法。我正在使用 java.math.BigInteger.modPow() 函数进行加密/解密,它适用于我的计算机(Windows 和 Xubu
这只发生在 x64 版本中 An unhandled exception of type 'System.ArithmeticException' occurred in WindowsBase.dl
我是一名优秀的程序员,十分优秀!