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 Cursornext()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=stmt.executeQuery(query);
while (rset.next()) {
    System.out.println(rset.getInt(1));
}
于 2012-05-28T12:34:09.880 に答える
1

count(*)はグループ関数であるため、クエリは1行1列のテーブルを返します。したがって、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 に答える
1

rset.getInt(1)を使用します。最初の列の値を返します。

while(rset.next){ System.out.println(rset.getInt(1));}
于 2012-05-28T12:38:45.610 に答える
0

背景情報と同じように、注意してください

select count(*) from ...

常にゼロ以上でnullになることのない1つの行を返します(後者はすべてに当てはまります:

count(*)

呼び出し)。

最初はこれをコメントとして入れましたが、* =斜体で、エスケープする方法が見つかりませんでした。

于 2012-05-28T14:19:22.843 に答える