Est t-il possible de récupérer par requête le nombre de ligne qu'il y a dans un package ou procédure ou fonction?

De plus j'ai créé une requete qui me permet pour chaques table et vu le nombre de clé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
(select table_name, count(*) "cle" 
from user_constraints   
group by table_name  
union select distinct(all_tab_columns.table_name),0 
from all_tab_columns,user_constraints t1 
where all_tab_columns.table_name not in t1.table_name  and all_tab_columns.owner='XXX' ) 
order by table_name

par contre là j'ai des doublons.....
union entre les deux requetes car toutes les tables n'apparaissaient pas!!
en effet s'il n'y a pas de clé j'aimerai retrourner 0 ok pas de souci.par contre s'il y a une clé j'ai deux résultats:
une ligne avec le bon nombre de clé sur la table et une autre ligne avec un 0.


Merci