Recette avec les stats d’Oracle

Voici un petit moyen de tester rapidement une table en recette.

Un des tests « génériques » pour voir si une colonne est bien chargée est de voir :
– si toutes les valeurs de la colonne ne sont pas nulles
Рsi on a des valeurs diff̩rentes dans la colonne

Pour cela, on peut écrire 2, voire une seule requête.
Par contre, si on a plusieurs colonnes, il faut soir écrire plusieurs requêtes, soit une seule requête très complexe.

Un autre moyen est d’utiliser les stats d’Oracle, qui vont effectuer ces calculs pour nous !

Tout d’abord, il faut calculer les stats ( attention, je dis bien calculer, et non estimer ) :

-- ( Oracle 10g )
analyze table &TABLE.&OWNER compute statistics;

Ensuite il suffit de requêter la table des stats :

SELECT
  column_name,  
  num_distinct "nb val distinctes",  
  num_nulls "nb val nulles",
  sample_size "nb lignes"
FROM all_tab_columns
WHERE table_name='&TABLE' and owner='&OWNER'
ORDER by column_id;

Filtrer sur num_nulls>0 ou num_distinct=1 par exemple.

Attention, il ne faut pas oublier après de recetter aussi les données fonctionnellement !!!