Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 15h00   #1
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
Par défaut comparaison de 2 tables

bonjour,

je souhaiterais savoir s'il y'avait une solution sur oracle 9i pour comparer le contenu de 2 tables qui ont la même structure.
le but est de pouvoir vérifier que chaque champ de chaque lignes sont identiques.
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 15h20   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Code :
1
2
3
4
5
6
7
(SELECT * FROM tab1 
MINUS 
SELECT * FROM tab2)
UNION ALL 
(SELECT * FROM tab2
MINUS 
SELECT * FROM tab1)
gare aux perfs :paf:

Sinon tu peux aussi faire une jointure entre les 2 tables
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h02   #3
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
oui mais la jointure ne me dira pas si tous les champs ont la même valeur non?
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h07   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
sauf si tu fais la jointure sur toutes les colonnes
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h14   #5
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
super merci
mais quelle est la plus coûteuse selon toi?
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h20   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
les 2

FULL SCAN des 2 tables 2 fois c'est forcément couteux
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h30   #7
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
j'ai essayé les 2 solutions et apparemment celle avec la jointure me donne un COST de 6 alors que la 1ère me donne un COST de 10:

Code :
SELECT * FROM tab1 JOIN tab2 USING (colA,colB,colC,colZ)
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 16h36   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Fait un COUNT pour pouvoir comparer avec le nombre de lignes de chacune des tables
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h02.


 
 
 
 
Partenaires

Hébergement Web