|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Bonjour à tous,
Je viens vous voir pour un petit coup de main concernant une requête récursive. J'ai ma requête récursive qui fonctionne actuellement sur oracle et il faut que je la convertisse pour DB2. Voila la requête oracle en question : Code :
Ghosty |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
bonjour,
lisez cet article : http://sqlpro.developpez.com/cours/s...te-recursives/ La syntaxe est identique sous db2 (isereis du moins ... vu que vous n'avez rien précisé d'autre) |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Merci de ta réponse punkoff,
je me sert de ce cours pour essayer de convertir la requête. pour ce qui est de la base je dois pouvoir exécuter ma requête sur DB2/UDB et DB2/400. Je supposé, peut-être à tort que la syntaxe serait la même pour les deux. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Tiens dans ce cas,
La doc officielle http://publib.boulder.ibm.com/infoce...ivequeries.htm Un article qui compare la récursion Oracle / db2 : http://www.ibm.com/developerworks/da...steinbach.html |
|
|
00
|
|
|
#5 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
salut punkoff
alors la requête commence à être traduite. Elle s'exécute mais me retourne pas ce qu'il faut : - D'abord, elle me retourne plein de ligne alors que normalement et devrait me retourner uniquement les chemins valides - Et ensuite dans le champ concaténé qui se construit avec la récursion, je n'est qu'une concaténation au lieu du chemin complet. Code :
Pourrais-tu jeter un coup d'oeil ? Merci par avance |
||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 503 ![]() |
Bonjour
je ne connais pas Oracle(et la recursivité est restée à l'école), mais rempacer CONNECT BY NOCYCLE par une jointure simple me semble un peu rapide. |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Oui c'est bien possible... tu aurais une idée??
Par ce que j'essaye de m'appuyer sur le cours donner par punkoff en premier lien. Mais vu que je découvre la récursivité, je lutte un peu... |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
La récursivité ce n'est pas compliqué encore faudrait-il que tu sois au minimum en V5R4.
Par contre, peux-tu donner précisément le résultat attendu ? |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 503 ![]() |
Bonjour
Tu n'y arriveras pas sans revoir ta copie. Tu mélanges les données dès le départ, avec le "UNION ALL". Comment veux-tu que db2 traite automatiquement? en ayant testé avec 1 ligne, db2 ne s'en tire pas (boucle puis plantage). Il te faut des données "bien rangée" ou trouver le truc qui va bien pour remplacer le "CONNECTED" de oracle, ce qui dépasse mes pauvres compétences. Désolé a+ |
|
|
00
|
|
|
#10 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
alors voila ou j'en suis avec un peu d'aide, je pense que la requete marche bien mais il faut que je fasse d'autres test :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com