AXOPEN

Audit de données : vérifier l’absence de doublons (ONB identiques) entre les tables P5

Description

Dans certains cas, lorsque l’on n’a pas positionné d’offset pour les différentes bases de données d’une application Planisware par exemple, on peut constater la présence d’objets ayant le même ONB dans des tables Planisware distinctes. Ceci est une corruption mineure du modèle de données car les données ne sont pas de la même classe.

Note : le cas où les doublons sont dans la même table est traité dans un autre article.

Requête SQL

Pour commencer, il faut récupérer la liste des tables Planisware possédant une colonne « ONB » (Cf. Requête SQL pour avoir toutes les tables de la BDD avec possédant un champ « ONB »).

Ensuite récupérer cette liste de tables dans Excel pour générer une requête permettant de créer une vue contenant toutes ces tables. La requête sera du type :

CREATE OR REPLACE VIEW ONB_VIEW (onb_obj,obj_table) AS
 (select ONB,'TABLE_PLW_1' from TABLE_PLW_1) UNION
 (select ONB,'TABLE_PLW_2' from TABLE_PLW_2 ) UNION
 …
 (select ONB,'TABLE_PLW_N' from TABLE_PLW_N ) ;

Cette vue (ONB_VIEW) permet ensuite de remonter la liste des ONB en doublons via la requête :

SELECT onb_obj, Count(*) FROM ONB_VIEW GROUP BY onb_obj HAVING Count(*) > 1;

Enfin si l’on veut connaître précisément pour un ONB les tables contenant les objets ayant les même ONB il suffit de lancer une requête du type :

select * from onb_view WHERE onb_obj=XXXXXXXXXX;

avec : XXXXXXXXXX l’ONB recherché.