|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 28 ![]() |
Bonjour à tous,
dites j'ai une liste de données qui me viennent sous la forme: "donnee1, donnee2, donnee3" et j'aimerais savoir laquelle de ces données ne se trouve pas dans un certain champ d'une table. j'aurais aimé pouvoir faire: select donnee1, donnee2, donnee3 from dual minus select champ1 from table1 mais ça ne marche pas parceque les données de la première partie se classent en colonne plutôt qu'en ligne. J'ai pensé à faire : select donnee1 from dual union select donnee2 from dual union select donnee3 from dual minus select champ1 from table1 et là ça marche même s'il m'a fallu couper ma chaine pour récupérer donnee1, donnee2 et donnee3. Est-ce que quelqu'un aurait une autre idée ? Merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
Bonjour,
merci d'indiquer la version Oracle utilisée. sinon, tu peux essayer quelque chose comme ça : Code :
|
||
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
quel intérêt? select from dual union va très bien!
|
|
00
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 56 ![]() |
C'est juste pour éviter de découper la chaine et de construire son SQL dynamiquement en fonction du nombre de valeurs découpées.
Code :
|
||
|
|
10
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
tu découpes aussi 'donnee1,donnee2,donnee3' en en 'donnee1', 'donnee2', 'donnee3', non?
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 28 ![]() |
Trop cool Zugg, ça déchire ton truc.
En plus je compare des nombres donc je n'aurais pas à mettre d'apostrophes. Par contre si ton type table avait plusieurs champs (colonnes) comment aurais-tu fais pour ajouter plusieurs lignes à ta table ? Est-ce que ceci aurait marché par exemple SELECT * FROM TABLE(varchar3_table(('donnee1', 'donnee2'), ('donnee3', 'donnee4') )) avec les parenthèses pour délimiter les lignes ??? déjà au niveau de create type comment aurait-on renseigné les types de champs ?? |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 28 ![]() |
Au fait j'ai Oracle database 10g Enterprise Edition Release 10.2.0.2.0
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
union all from dual a l'avantage d'être lisible, de ne pas avoir besoin d'objets, et d'être beaucoup plus rapide.
pour créer une collection d'enregistrement : Code :
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com