|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 108 ![]() |
Salut à tous,
Je fais un select sur plusieurs tables pour charger automatiquement une autre table que je ne nommerais table_finale. Il arrive des jours où la table finale n’est pas chargée parce qu’il ya un problème de clé primaire double(survenue d'une autre table qui nous ai livrée). J’aurai t-il une possibilité avec le sql de ne charger que les données des clés sans « problème » et pour celles qui ont un problème de clé primaire, de les rejeter et charger la table normalement. Les mauvaises données seront en suite sauvegardé dans un fichier.log ou fichier texte par exemple. Merci de votre aide Fiona |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Mx Victoire Inscription : octobre 2010 Messages : 45 ![]() |
pour moi je te propose d'ajouter à ta table finale une nouvelle colonne de type auto_increment. j'ai eu le mm problème et c'est de cette manière que j'ai introduis plusieurs données de mm clé.
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Le rejet est à priori incompatible avec la notion de traitement par lot.
- soit tu fais du traitement ligne à ligne et quand une erreur est levée tu rejettes la lignes. C'est ce que font certains ETL (Genio par exemple). Attention aux perfs. - soit tu fais une table temporaire indexée mais sans contrainte dans laquelle tu travailles pour retirer les lignes en doublon (je crois que l'ETL ODI travaille comme ça) - soit tu fais un select qui ne prends pas les doublons Code :
SELECT clé, count(*) FROM source GROUP BY clé HAVING count(*) = 1 Code :
SELECT clé, count(*) FROM source GROUP BY clé HAVING count(*) > 1
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Citation:
|
|
|
|
10
|
|
|
#5 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Formidable fonctionnalité, j'adore. Bon donc ça dépend de la version de Fiona8
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 108 ![]() |
Salut à tous,
Merci pour vos réponses. Je traivaille pour le moment avec le version 9.2 d’oracle. Comment faire un traitement ligne à ligne avec sql ? Je n’utilise aucun ETL. Je dois gerer cela avec du code sql ? @ skuatamad Merci pour le lien. Je vais lire et voir si je peux aussi l’exploiter pour la version 9.2 d’oracle. Merci Fiona |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Il n'y a besoin d'ETL pour aucune des 4 solutions.
Essaye ma 3e solution, je pense que c'est la plus adaptée.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
|
|
00
|
|
|
#8 | |||
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 108 ![]() |
Citation:
quand je fais Code :
Que dois je faire ou changer? Merci pour ton aide Fiona |
|||
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 108 ![]() |
j'obtient la faute:ORA-00913: too many values
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Tu n'as probablement pas de colonne dans table_finale pour recevoir count(id_1). Retire le du select, il n'est pas obligatoire pour faire le GROUP BY HAVING.
|
|
|
00
|
|
|
#11 | ||||
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 812 ![]() |
Code :
Code :
tsssss et voila. On met en forme le code et on se fait griller
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes. Mon combat pour les droits des consommateurs face aux abus des grandes marques. |
||||
|
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 108 ![]() |
Salut les gars,
merci pour vos sugestions. @nuke_y Fonctionne à merveille. Que veut dire "se faire griller"? Je vais maintenant essayer de recuperer les valeurs rejétées pour les sauvegarder dans une table_erreur. Merci Fiona |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com