Est-ce que vous auriez pas dans vos cartons un algorythme pour balayer un base de données, je cherche à repérer les noeuds.
Merci d'avance
Publicité
Posté le 18-07-2005 à 22:24:20
cesarr89
Posté le 19-07-2005 à 08:19:18
Les noeuds d'une base de données?? C'est quoi pour toi?
Arjuna
Aircraft Ident.: F-MBSD
Posté le 19-07-2005 à 09:38:25
Si c'est une relation du type "père-fils" dans une table, alors sous Oracle, il y a la fonction miracle "connect by ... prior ..." qui est parfaite.
Par contre, c'est pas très rapide, et surtout, ça ne marche à ma connaissance que sous Oracle.
Elmoricq
Modérateur
Posté le 19-07-2005 à 09:41:42
Je ne connais pas de fonction standard en SQL pur, je pense que chaque base de données à sa façon de faire pour retrouver les liens de parenté.
Si bien sûr c'est ce qu'entend phil444 par "noeud d'une base de données".
moi23372
Posté le 19-07-2005 à 09:52:56
franchement ça me semble quand même bizzare ce qu'il veut faire...
Elmoricq
Modérateur
Posté le 19-07-2005 à 09:53:44
Moi, ça me semble simplement abscons.
phil444
Posté le 19-07-2005 à 11:06:34
ce que je veux faire, c'est que je suis sur une base, de SGDT, et je veux la balayer pour changer certains attributs, mais pour ça faut que je déploie toute l'aborescence, donc faire une boucle récursive, certainement en PL/SQL.
ce que je veux faire, c'est que je suis sur une base, de SGDT, et je veux la balayer pour changer certains attributs, mais pour ça faut que je déploie toute l'aborescence, donc faire une boucle récursive, certainement en PL/SQL.
Une petite remarque : je crois que pour le récursif en SQL, on n'a droit qu'à un nombre limité d'imbrications.
Combien exactement je ne sais plus, peut-être 16 mais faut que quelqu'un confirme.
Sinon pour ton explication, je n'ai toujours pas compris. Qu'appelles-tu une "arborescence", dans une base ? L'ensemble des tables ?
De quels attributs parles-tu ? Index ? Clefs ? Autre ?
Arjuna
Aircraft Ident.: F-MBSD
Posté le 19-07-2005 à 11:37:17
Le nombre d'ittération récursives dépend du moteur de script. Pour le T-SQL (SQL Server 2000), c'est 20, chaque niveau de trigger comptant pour 1, c'est important à savoir en cas de mises à jour en cascade.
phil444
Posté le 20-07-2005 à 10:12:26
oui c'est l'ensemble des tables avec les liens transverses
Publicité
Posté le 20-07-2005 à 10:12:26
phil444
Posté le 20-07-2005 à 10:18:16
oui pour les attributs, il s'agit d'attributs de la table, c'est vrai faut être plutot précis dans les termes, le but c'est de changer la valeur d'un attributs dans la table, je te donne un exemple je dois changer le nom d'un service de l'entreprise, je dois pas avoir plus de 10 niveaux et je suis sur une base oracle avec sqlplus
oui pour les attributs, il s'agit d'attributs de la table, c'est vrai faut être plutot précis dans les termes, le but c'est de changer la valeur d'un attributs dans la table, je te donne un exemple je dois changer le nom d'un service de l'entreprise, je dois pas avoir plus de 10 niveaux et je suis sur une base oracle avec sqlplus
J'ai pas compris ton exemple là.
Tu voudrais pas parler d'intégrité référentielle en fait ?
Arjuna
Aircraft Ident.: F-MBSD
Posté le 20-07-2005 à 12:47:29
Donne un exemple complet avec :
-> Structure des tables liée à l'exemple
-> Données d'exemple
-> Ce que tu as
-> Ce que tu veux
-> Le numéro de téléphone de ta soeur si elle est jolie