Logiciel Comparaison Données

ezzahiri -  
 NoBody -
Bonjour,
En fait je cherche un logiciel qui permet de comparer les bases de données (Oracle,SQL Server et Access) au niveau des données. J'aimerais appeler cet executable depuis mon programme pour lancer des comparaisons de tables.
Merci

3 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Il y a une méthode relativement peu couteuse:

Exporter chaque table, triée selon la clé primaire, sous format CSV.
Puis comparer ces CSV entre eux avec des logiciels comme diff ou ExamDiff (ou même par ton programme lui-même).

ça permet de développer rapidement des systèmes de comparaison.
Et ça marche généralement assez bien pour voir les enregistrements ajoutés, supprimés ou modifiés.
0
ezzahiri
 
tout d'abbord merci pour ta réponse mais une chose que j'aurais du expliker: j'ai environ 100 tables sur différents SGBDR (SQL Server , Oracle et Access) et faire l'export pour chaque type 100 * 3 = 300 exports en CSV sachant que l'export est différent pour chaque type de SGBDR. et donc voila pour quoi je cherche a mettre tout ca dans un prog.
Merci encore
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Je vois.

Dans ce cas, il faut extraire automatiquement le nom des tables, et les exporter en automatique.

Par exemple sous SQL Server, pour avoir la liste des tables d'une base on fait:
select name from sysobjects where xtype='U'

Je pense qu'on doit pouvoir faire l'équivalent pour chaque type de serveur de base de données.

Bien sûr il faut avoir assez d'espace disque pour stocker tout cela...
0
ezzahiri
 
Le plus dur n'est pas de connaitre le nom des tables étant donné que je les connais déjà mais le programme d'export "multi SGBD". Cherchez dans la littérature informatik et je n ai trouvé aucun programme pouvant faire cela. Je me retrouve donc au même problème initial :(
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667 > ezzahiri
 
Access, Oracle et SQL Server sont tous fournis avec des pilotes ODBC.

Il suffirait donc d'un programme générique supportant ODBC, et faisant les requêtes adéquates sur chaque type de serveur pour récupérer la liste des tables et récupérer les données.
0
ezzahiri > ezzahiri
 
okay je te remercie pour ton aide précieuse je vais bosser dessus pour voir comment cela se passe.
A+
0
NoBody
 
Bien qu'il soit un peu tard pour répondre à cette question , une réponse peut toujours intéresser ceux qui comme moi tomberont sur cette discussion para hasard :

http://blogs.developpeur.org/...

où il est dit :

"Tablediff" est un outil situé dans "C:\Program Files\Microsoft SQL Server\90\COM", disponible dans n'importe quelle édition de SQL Server 2005 (à verifier pour Express). Elle est utilisée par la réplication pour la comparaison des données lors d'une synchronisation de snapshot.

Comment fonctionne cette commande ?

Vous avez 2 groupes d'options « source » et « destination ». Par défaut vous n'avez qu'à spécifier le serveur, la base de données et la table. Voici un exemple simple :

tablediff -sourceserver .\devx64 -sourcedatabase northwind -sourcetable employee -destinationserver .\devx86 -destinationdatabase northwind -destinationtable employee

Ici je compare la table « employee » de la base « Northwind » de mon instance locale « devx64 » avec mon instance locale « devx86 ». Le tout avec l'authentification Windows pour la connexion.

Pour aller plus loin vous pouvez utiliser le nom du schéma, un nom d'utilisateur et mot de passe dans les options de sources et de destination.

Le plus important, c'est qu'il est possible de choisir le mode de comparaison des données :

« -q » permet de ne comparer que le nombre d'enregistrement des 2 tables
« -c » permet de faire une comparaison complète de tous les champs
Il est aussi possible à l'aide de l'option « -f » de créer un fichier de script SQL permettant de mettre à jour la table de destination pour qu'elle soit la copie conforme de la table source.

Un outil indispensable et gracieusement offert avec SQL Server 2005.
0

Discussions similaires