Compter les lignes des tables d’un schéma en PL/SQL

Pour compter le nombre de lignes de toutes les tables d’un schéma Oracle il est nécessaire d’utiliser le bloc anonyme suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DECLARE
    nbLignes NUMBER := 0;
BEGIN
 
    FOR C1 IN (
        select TABLE_NAME
        from user_tables
    ) LOOP
     
    EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || C1.TABLE_NAME INTO nbLignes;
     
    DBMS_OUTPUT.PUT_LINE(C1.TABLE_NAME || ': ' || nbLignes);
             
    END LOOP;
END;

Il est bien évidement possible de filtrer les tables en ajoutant une instruction WHERE dans la requête du curseur C1