Oracle
 sql >> Database >  >> RDS >> Oracle

Contando n. di record da più tabelle; Oracle DB

Puoi utilizzare la funzione DBMS_XMLGEN.GETXMLTYPE per farlo in un colpo solo:

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.

Ma se il tuo schema contiene molti dati, l'operazione potrebbe richiedere molto tempo. La semplice selezione di NUM_ROWS potrebbe essere sufficiente se anche le stime sono corrette.

Saluti,
Rob.