SelectQueryの結果として列数をカウントする方法。
私が欲しいのは
100列のテーブルがありますが、40〜45列のみを選択しています。選択した列の数を知りたい。
スキーマ情報を使用して、すべての列の数を取得できますが、その選択クエリの列数が必要です。
出来ますか。どうもありがとう。
David Brabantが述べたように、これは使用しているRDBMSに大きく依存します。
DBMS_SQLを使用したOracleのソリューションは次のとおりです。
declare
c number;
d number;
col_cnt integer;
rec_tab dbms_sql.desc_tab;
begin
c := dbms_sql.open_cursor;
dbms_sql.parse(c,
'select 1 as pk, 2 as value from dual',
dbms_sql.native);
d := dbms_sql.execute(c);
dbms_sql.describe_columns(c,
col_cnt,
rec_tab);
dbms_output.put_line(col_cnt);
end;