Count all rows in all tables in a database
CREATE GLOBAL TEMPORARY TABLE TMP_TOTALES ( TABLA VARCHAR2(32), TOTAL NUMBER ) ON COMMIT DELETE ROWS; set serveroutput ON; DECLARE total NUMBER:=NULL; cursor tablas_cursor IS select TABLE_NAME from all_Tables where owner = 'myUser' AND NOT table_name like '%$%' ORDER BY TABLE_NAME ASC; v_sqltxt varchar2(32767); no_privs exception; pragma exception_init(no_privs, -1031); BEGIN FOR tabla IN tablas_cursor loop v_sqltxt:='select count(1) from '|| tabla.TABLE_NAME ||''; BEGIN EXECUTE immediate v_sqltxt INTO total; INSERT INTO TMP_TOTALES(TABLA, TOTAL) VALUES (tabla.TABLE_NAME, total); dbms_output.put_line(tabla.TABLE_NAME || ' ' || total); END; END loop; END; / select * from TMP_TOTALES ORDER BY TOTAL DESC;