DBMS_XMLGEN.GETXMLTYPE関数を使用して、これを1回で実行できます。
SQL> select table_name
2 , to_number
3 ( extractvalue
4 ( dbms_xmlgen.getxmltype('select count(*) c from ' || table_name)
5 , '/ROWSET/ROW/C'
6 )
7 ) cnt
8 from user_tables
9 order by table_name
10 /
TABLE_NAME CNT
------------------------------ ----------
... [output removed] ...
71 rows selected.
ただし、スキーマに大量のデータが含まれている場合、これには長い時間がかかる可能性があります。見積もりも問題ない場合は、NUM_ROWSを選択するだけで十分な場合があります。
よろしくお願いいたします。
ロブ。