【发布时间】:2014-04-11 03:29:59
【问题描述】:
我只是为模式中的每个表计算了行数。 现在我需要数据类型为 NUMBER 的表中列的行数。 我不知道如何获取每个表的单个 NUMBER 数据类型列的行数?
DECLARE
t_c1_tname user_tables.table_name%TYPE;
t_command VARCHAR2(200);
row_count INTEGER;
CURSOR c1 IS SELECT table_name FROM user_tables ORDER BY table_name;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO t_c1_tname;
EXIT WHEN c1%NOTFOUND;
t_command := 'SELECT COUNT(*) FROM '||t_c1_tname ;
execute immediate t_command into row_count;
dbms_output.put_line('Table : '|| t_c1_tname || 'Count : '|| row`enter code here`_count);
END LOOP;
CLOSE c1;
END;
【问题讨论】:
-
select * from all_tab_columns where owner = 'H' and data_type = 'NUMBER';
-
您是指每个数字列中非空值的计数,还是具有任何数字列的任何表的行数?如果您只查看自己的架构,您也可以使用
user_tab_columns;在您当前的代码中使用user_tables建议。 -
仅选择数据类型为 NUMBER 的列。然后在该 NUMERIC 列中计算 NULL 和 Non_NULL 值的行数。这部分忘了说
标签: oracle count dynamic-sql