Urgent-parcourir une chaine de caractère

Fermé
soussou - 16 mai 2003 à 15:26
 gator - 22 mai 2004 à 23:56
salut ts le monde,
j'arrive pas à résoudre ce pb :
j'ai cette chaine de car par exple :
select * from t1,t2,t3
et je veux parcourir cette chaine et récupérer après t1 t2 et t3
comment il faut faire svp?!
A voir également:

38 réponses

Pitu Messages postés 1440 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 125
16 mai 2003 à 15:28
Bonjour Soussou.

De quel(s) outil(s) disposes-tu ?
Tu veux faire ça en quel langage ?

 
   (:•Þ  Pitu
0
en fait j'utilise sql dans des procédures stockées et je sais que dans les procédures stockées, on peut utiliser le langage c, alors je voulais savoir comment on fait
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 15:39
Ben déjà là tu nous fait un beau produit cartésien, de quoi mettre ton serveur SQL à genous.

Comme dit Pitu, dans quel langage programmes-tu ?

t1 t2 et t3, ce sont bien des tables ?
0
oui se sont des tables.
please help
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 16:38
Je ne vois pas bien ce que tu veux faire.
Tu pourrais expliquer un peu ?
Tu travailles avec quel serveur SQL ? Microsoft SQL Sever, Oracle, autre ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
j'utilise sql server, et j'ai une procédure stockée dans laquelle, je veux faire ce traitement :
j'ai par exple cette requete sql : select * from t1, t2,t3,t4
je veux récupérer dans cette requête les tables t1,t2,t3 et t4
alors puisque ds les procédures stockées, on utilise le langage c, je me suis dis on peut utiliser les fonct c pr parcourir cette chaine de caractère (la requête sql ) et récupérer les tables (en vérifiant ce qui est après 'from'...)
voilà, j'espère que j'ai été claire
merci d'avanace
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 16:46
Bon... d'abord est-ce que tes tables t1,t2,t3 et t4 ont exactement la même structure ?
0
ces noms quelconques. Pr le moment, je veux juste résoudre le cas simple, sinon après ça sera plus compliqué, cad j'aurai une structure comme ça : select * from t1 a 'table1', t2....
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 16:51
Je repose ma question:
Est-ce que tes tables auront exactement la même structures ?

Si la réponse est oui, alors on peut effectivement ramener toutes les données avec une seule requête.
Si la réponse est non, c'est tout simplement impossible.
0
oui, elles ont la même structure.
merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 16:53
Sans ce cas tu peux faire:

select * from t1
union all
select * from t2
union all
select * from t3

ça permet de ramener le contenu des tables dans un même recordset.
0
mais pk vous faîtes ça? après qd j'aurai une requête plus compliquée, ça complique tous.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 17:01
Ben oui je ne vois pas l'intéret de ramener toutes les tables pour mouliner dessus ensuite.
Autant faire faire le travaille de filtrage par le serveur SQL...

Mais il faut que tu explique un peux plus précisément ton problème.
0
pr le moment je veux récupérer les tables ds une requête simple : select * from t1,t2,t3

mais après je peux avoir une requête plus compliquée :
select * from t1 as table1,t2 where i in (select * from t3)...

donc je crois qu'on peut pas faire ça.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 17:12
Tu connais les jointures SQL ?
0
oui.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 17:16
select * from t1 as table1,t2

ça ne ramènera rien de bon.

Si tu as 2 tables dans ta clause FROM, il te faut une condition de jointure entre les table t1 et t2.
Et tu ne peux pas utiliser *. Tu est obligé de nommer les champs que tu veux ramener.
0
pas nécessairement. je peux ne pas mettre des conditions si je veux afficher le contenu de ttes les tables.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
16 mai 2003 à 17:25
et bien si tu veux afficher le contenu de toutes les tables:

select * from t1;
select * from t2;
select * from t3;
0
je veux pas afficher le contenu des tables, mais je veux avoir le nom des tables, voici un exple de ce que je veux :
j'ai une requête (chaîne de car) : select * from t1,t2,t3,t4

je veux récupérer de cette chaîne : t1 t2 t3 et t4.
cad, il faut que je parcours la requête qd je trouve le mot 'from', je récupère ts les noms des tables ds la clause from.
0
Pitu Messages postés 1440 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 125
19 mai 2003 à 11:29
Bon, je crois avoir bien compris ce que tu veux faire, mais tu ne m'as pas répondu quant au langage dans lequel tu veux faire ça.
Est-ce en shell unix ? en C ? en Cobol ? Veux-tu juste un algorithme ?

Pour traduire ta question et amener d'autres personnes à te répondre, je dirais que tu souhaites analyser la syntaxe d'une requête SQL pour en extraire les noms des tables impliquées.

 
   (:•Þ  Pitu
0