2012-06-25 36 views
0

如何计算选择查询的结果列数。作为选择查询的结果计数列数

我想是

有100列的表格,但我只选择40-45列。我想知道所选列的数量。

使用模式信息我可以得到所有列的计数,但我希望该选择查询的列数。

这是可能的。 非常感谢。

+0

你可以得到一个查询相同的信息。 IIRC,有一个设置只在执行查询时检索方案。 – leppie

+0

你正在使用什么数据库? –

+0

您可以通过检查查询计划来执行您正在查找的SQL Server数据库。这并不容易,也没有办法可以直接在SQL Server内部使用查询来完成它。 – Kane

回答

0

正如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;