Количество строк относится к таблицам , а не столбцам . Таким образом, вы
select count(*) from your_table;
получите это значение.
Динамически , PL / SQL может сделать это следующим образом:
SQL> set serveroutput on
SQL> declare
2 l_cnt number;
3 begin
4 for cur_r in (select table_name, column_name
5 from user_tab_columns
6 where table_name in ('EMP', 'DEPT')
7 )
8 loop
9 execute immediate 'select count(distinct ' || cur_r.column_name || ')' ||
10 ' from ' ||cur_r.table_name into l_cnt;
11 dbms_output.put_line(cur_r.table_name ||'.'|| cur_r.column_name ||': ' || l_cnt);
12 end loop;
13 end;
14 /
DEPT.DEPTNO: 4
DEPT.DNAME: 4
DEPT.LOC: 4
EMP.EMPNO: 14
EMP.ENAME: 14
EMP.JOB: 5
EMP.MGR: 6
EMP.HIREDATE: 13
EMP.SAL: 12
EMP.COMM: 4
EMP.DEPTNO: 3
PL/SQL procedure successfully completed.
SQL>