0

我使用以下查询来获取列数。

select count(*) from all_tab_columns where owner='IULPROJECT' and table_name='SUPPLIERS';

这个查询在 Oracle 命令行中工作,我得到了数字 5,但是如何在 Java 中返回这个数字?

在 Java 中:

stmt=conn.createStatement();
query="select count(*) from all_tab_columns where owner='IULPROJECT' and table_name='SUPPLIERS' ";
rset=stmt.executeQuery(query);
System.out.println(stmt); //<-- what should I put here to get back my number "5" ?
4

5 回答 5

3

您的数据已经ResultSet包含在其中column,因此您必须先调用next(),因为ResultSet Cursortype 隐式定位到 row before first。所以调用next()方法,然后count = rset.getInt(1)你会得到你的数据。

 rset=stmt.executeQuery(query);
    int count = 0;
    while (rset.next()) {

    count = rset.getInt(1); // numbering of columns starts from 1 not from 0

    }
    System.out.println(count);

希望它可以帮助你。问候男人

于 2012-05-28T12:31:55.630 回答
1

使用 rset.getInt(1)。它将返回第一列的值。

while(rset.next){ System.out.println(rset.getInt(1));}
于 2012-05-28T12:38:45.610 回答
1
rset=stmt.executeQuery(query);
while (rset.next()) {
    System.out.println(rset.getInt(1));
}
于 2012-05-28T12:34:09.880 回答
1

您的查询将返回一个包含一行和一列的表,因为count(*)是一个组函数。所以得到ResultSet后,使用next()去第一行,然后使用getInt()获取值

stmt=conn.createStatement();
query="select count(*) from all_tab_columns where owner='IULPROJECT' and table_name='SUPPLIERS' ";
rset=stmt.executeQuery(query);
rset.next();
System.out.println(rset.getInt(1)); 
于 2012-05-28T12:34:59.677 回答
0

就像背景信息一样,请注意

select count(*) from ...

将始终准确返回大于或等于零且永远不会为空的一行(后者对所有人都适用:

count(*)

来电)。

我最初将此作为评论,但 * = 斜体,我找不到逃避它的方法

于 2012-05-28T14:19:22.843 回答