我是靠谱客的博主 动听大碗,最近开发中收集的这篇文章主要介绍oracle查找不重复的两列,Oracle中看起来相同的两列何时不相同?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我在Oracle9i中的一个项目中工作。我在TopLink 10.1.3中加载表中的特定行时遇到问题。原来TopLink所依赖的JDBC驱动程序表现得非常有趣。也许这里有人能帮忙…

我有一张桌子叫:Crazytable。它有一列:“ver_num number(19)not null default 0”。几年前,此列作为原始插入的一部分添加到了表中。当我从crazytable中选择任何记录(参见下面的JDBC连接代码)并尝试执行rs.getlong(colindex)时,一切都正常。但是,如果我执行rs.getobject(colindex),则会得到stacktrace:

java.lang.ArrayIndexOutOfBoundsException: 1

at oracle.sql.NUMBER.toBigDecimal(NUMBER.java:651)

at oracle.jdbc.dbaccess.DBConversion.NumberBytesToBigDecimal(DBConversion.java:2805)

at oracle.jdbc.driver.OracleStatement.getBigDecimalValue(OracleStatement.java:4539)

at oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:5666)

at oracle.jdbc.driver.OracleStatement.getObjectValue(OracleStatement.java:5622)

at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:739)

at oracle.jdbc.driver.OracleResultSet.getObject(OracleResultSet.java:1470)

stacktrace truncated to protect my poor code...

我可以取另一个表,让我们称之为:sanetable,并对具有相同名称的列运行相同的查询,并键入“ver_num number(19)not null default 0”。而rs.getlong(colindex)和rs.getobject(colindex)工作得很好。

约束或索引中不涉及任何列。我试过Oracle驱动程序9.2.0.8、9.2.0.5、9.2.0.1,甚至10.*都不行。

有人知道我在这里能做什么吗?

这是我的基本连接代码。成功调用之间的唯一区别是有问题的特定表:

Class.forName(oracle.jdbc.OracleDriver.class.getName());

String url = "jdbc:oracle:thin:@IPADDRESS:PORT:INSTANCE";

Connection conn = null;

ResultSet rs = null;

try {

conn = DriverManager.getConnection(url, "user","pass");

PreparedStatement prepareStatement = conn.prepareStatement(

"select distinct ver_num " +

"FROM [crazytable|sanetable] "

);

rs = prepareStatement.executeQuery();

assertNotNull(rs);

while (rs.next()) {

ResultSetMetaData md = rs.getMetaData();

for (int i = 1; i <= md.getColumnCount(); i++) {

String key = md.getColumnLabel(i);

Object value = rs.getLong(key);

System.out.println(key+" : "+value

+" was null: "+rs.wasNull()

+" type: "+ rs.getType()

+" class: "+ md.getColumnClassName(i));

}

}

} finally {

if (rs != null) {

rs.close();

}

if (conn != null) {

conn.close();

}

}

最后

以上就是动听大碗为你收集整理的oracle查找不重复的两列,Oracle中看起来相同的两列何时不相同?的全部内容,希望文章能够帮你解决oracle查找不重复的两列,Oracle中看起来相同的两列何时不相同?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部