Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Contando não. de registros de várias tabelas; Banco de dados Oracle


Você pode usar a função DBMS_XMLGEN.GETXMLTYPE para fazer isso de uma só vez:
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.

Mas se o seu esquema contiver muitos dados, isso poderá levar muito tempo. Apenas selecionar NUM_ROWS pode ser suficiente se as estimativas também estiverem corretas.

Atenciosamente,
Rob.