Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 11/07/2007, 15h38   #1
Invité de passage
 
Inscription : février 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 11
Points : 2
Points : 2
Par défaut Erreur ORA-01436 CONNECT BY LOOP IN USER DATA

Bonjour,
Lors de l'execution d'une requête
Code :
1
2
3
4
5
6
7
8
SELECT   
  T.PARENT,
  T.ENFANT,
  T.ALIAS_ENFANT,
  T.NIVEAU
FROM T
START WITH T.PARENT  = 'TEST'
CONNECT BY PRIOR  T.ENFANT = T.PARENT
j'obtiens ce message d'erreur ORA-01436: CONNECT BY loop in user data
si je comprends bien j'ai une boucle dans mes données.
Comment puis je déterminer où est cette boucle ?
Sachant que j'ai repéré le cas le plus simple où enfant=parent et que je l'élimine.
Merci pour votre aide
Diazz5475 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 16h04   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Code :
1
2
3
4
5
6
 
SELECT parent,enfant
FROM t 
WHERE connect_by_isleaf=1
start WITH parent='TEST'
connect BY nocycle parent = prior enfant;

A l'avenir, merci de lire les règles du forums avant de poster
http://www.developpez.net/forums/showthread.php?t=30569
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 16h25   #3
Invité de passage
 
Inscription : février 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 11
Points : 2
Points : 2
Merci pour cette réponse ; mais un message d'erreur persiste ORA00920-invalid relational operator
Puis je trouver la syntaxe dans un tutoriel ?

J'utilise oracle 8.1.7.2
Diazz5475 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 17h45   #4
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
le connect by nocycle c'est du 10g. dans 8i, je pense qu'il te faut du code procédural...
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 09h20   #5
Invité de passage
 
Inscription : février 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 11
Points : 2
Points : 2
C'est bien ce que je pensais
Merci quand même !
Diazz5475 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 09h45.


 
 
 
 
Partenaires

Hébergement Web