IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Espace dans des tables


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut Espace dans des tables
    Bonjour à tous,
    j'aimerai effectué une requête sur une page d'un site pour afficher des données de ma base. Malheureusement, certaines tables contiennent des espaces et je ne sais pas comment faire pour que la syntaxe soit correcte et que la table soit reconnue... Je sais ce que vous allez dire, ne pas mettre d'espace dans des tables!! Malheureusement ce n'est pas moi qui ai créé cette base de données et vu la grandeur de cette dernière, il me serait impossible de renommer toutes les tables...
    Voilà, est-ce que quelqu'un pourrait m'aider?
    Merci d'avance!

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: Espace dans des tables
    Citation Envoyé par fgiuliano
    Je sais ce que vous allez dire, ne pas mettre d'espace dans des tables!! Malheureusement ce n'est pas moi qui ai créé cette base de données et vu la grandeur de cette dernière, il me serait impossible de renommer toutes les tables...
    Argh, le dire avant qu'on puisse te faire le reproche, c'est vraiment pas sympa !!!

    La solution à ton problème est d'encadrer le nom de ta table par des doubles quotes. Je sais que ça fonctionne sous Oracle, je pense qu'il en est de même dans la plupart des SGBD.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SQL> create table "esp ace" (
      2  id number(10),
      3  libe varchar2(32));
     
    Table créée.
     
    SQL> INSERT INTO "esp ace" (id, libe) VALUES (1, 'Test');
     
    1 ligne créée.
     
    SQL> SELECT id FROM esp ace;
    SELECT id FROM esp ace
                   *
    ERREUR à la ligne 1 :
    ORA-00942: Table ou vue inexistante
     
     
    SQL> SELECT id FROM "esp ace";
     
            ID
    ----------
             1
     
    SQL>

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut Re: Espace dans des tables
    Citation Envoyé par Xo
    Argh, le dire avant qu'on puisse te faire le reproche, c'est vraiment pas sympa !!!

    Pour les "" j'ai déjà essayé mais ça n'avait pas fonctionné... Je vais peut-être aller rééssayer pour voir si ça va mieux et je redis le résultat!
    Merci pour ton aide!

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Voilà la requête SQL telle que je l'ai prise depuis Access... Si ça peut donner des idées à certains car moi, j'en ai plus...

    "SELECT Contacts.Nom AS Fournisseur, [Plan livraison].[Numéro fournisseur], Contacts_1.Nom AS Client, [Plan livraison].[Numéro client], Contacts_1.Groupe, Contacts_2.Nom AS Client2, [Plan livraison].[Numéro client2], Articles.Libellé AS Article, [couleur fournisseur] & '-' & [couleur client] AS Couleur, [Plan livraison].[Total à livrer], [Plan livraison].[Solde à livrer], [Plan livraison].[Pas confirmé], [Plan livraison].[En retard], [Plan livraison].[Semaine courante], [Plan livraison].[Dans 1 semaine], [Plan livraison].[Dans 2 semaines], [Plan livraison].[Dans 3 semaines], [Plan livraison].[Dans 4 semaines], [Plan livraison].[Solde à planifier], [Plan livraison].[Numéro article], [Plan livraison].[Numéro couleur], [Plan livraison].[Numéro semaine courante] FROM ((((Contacts INNER JOIN [Plan livraison] ON Contacts.Numéro = [Plan livraison].[Numéro fournisseur]) INNER JOIN Contacts AS Contacts_1 ON [Plan livraison].[Numéro client] = Contacts_1.Numéro) INNER JOIN Articles ON [Plan livraison].[Numéro article] = Articles.Numéro) INNER JOIN Couleurs ON [Plan livraison].[Numéro couleur] = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON [Plan livraison].[Numéro client2] = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & '-' & [couleur client]"

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: Espace dans des tables
    Citation Envoyé par fgiuliano
    Pour les "" j'ai déjà essayé mais ça n'avait pas fonctionné... Je vais peut-être aller rééssayer pour voir si ça va mieux et je redis le résultat!
    Merci pour ton aide!
    Ca ne devrait pas mieux fonctionner la seconde fois ? Dis-nous sous quel SGBD tu travailles (précision à TOUJOURS donner SVP ), la solution lui est peut-être spécifique ?

    [Edit]OK, vu ton message, c'est Access. Je ne peux pas t'aider plus, je ne connais pas la syntaxe "SQL" de ce SGBD assez spécifique. Peut-être pourrais-tu formatter ta requête afin de la rendre plus lisible STP ? Cf. Conseils à lire avant de poster
    [/Edit]

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut Re: Espace dans des tables
    Citation Envoyé par Xo
    Ca ne devrait pas mieux fonctionner la seconde fois ? Dis-nous sous quel SGBD tu travailles (précision à TOUJOURS donner SVP ), la solution lui est peut-être spécifique ?
    Non, ça n'a pas fonctionné, le message d'erreur suivant apparaît:
    parse error in ...

    C'est sous Access...

  7. #7
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Avec quoi tu execute ta rq ?
    Selon le cas il y peut-être la possiblité d'utiliser le pass-thru pour ne pas exécuter la rq sur le client mais ds access. (qui doit accepter [esp ace] comme nom de table)
    A +

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Bonjour,

    Avec quoi tu execute ta rq ?
    Selon le cas il y peut-être la possiblité d'utiliser le pass-thru pour ne pas exécuter la rq sur le client mais ds access. (qui doit accepter [esp ace] comme nom de table)
    A +
    Bonjour, je ne sais pas si j'ai compris ta question mais ma page pour mon site où se situe la requête est programmée en html/php.

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Personne pour me venir en aide? Je commence vraiment à tourner en rond!!! Il y a déjà un moment que je stagne là-dessus, il doit bien y avoir un moyen, non?!?!

  10. #10
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    Coooool,
    Laisses le tps de chercher, nous aussi on bosse ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = s.executeQuery ("select * from [table de test];");
    Dsl, PHP je connais pas, mais j'ai fait ça en java et ça marche.

    A +

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Re,

    Coooool,
    Laisses le tps de chercher, nous aussi on bosse ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = s.executeQuery ("select * from [table de test];");
    Dsl, PHP je connais pas, mais j'ai fait ça en java et ça marche.

    A +
    Ok, je vais essayer ça alors. Merci pour l'aide.

    Sinon, j'ai vu que je pouvais peut-être utiliser des alias sur mes tables et comme ça je pourrais enlever les espaces dans les noms...
    Est-ce que quelqu'un serait comment faire et si ça pourrait m'aider
    Merci

  12. #12
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Citation Envoyé par fgiuliano
    Sinon, j'ai vu que je pouvais peut-être utiliser des alias sur mes tables et comme ça je pourrais enlever les espaces dans les noms...
    Non, désolé je vais gacher tes espoirs. En sql 1 alias c
    select tb.attribut1, tb.attribut2 from nomDeTable as tb ...
    Il faut qd même que tu tapes le nom de la table ds la base.

    A+

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Ok, alors merci pour l'indication. Donc, je vais essayer de regarder comment je peux le faire en Java... Est-ce que par hasard, tu serais me conseiller pour un site car je ne connais que très très peu ce language...
    Merci beaucoup pour ton aide!

  14. #14
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Alors en fait en m'amusant un peu à tout tester, j'ai réussi à ce qu'il me reconnaisse mes tables avec espace en écrivant comme cela:
    [`Plan livraison`]
    Par contre, maintenant, il me met l'erreur suivante:
    Erreur de syntaxe dans la clause FROM., SQL state 37000 in SQLExecDirect in ...

    Voilà ma clause FROM
    FROM (((([Contacts] INNER JOIN [`Plan livraison`] ON [Contacts].[Numéro] = [`Plan livraison`].[Numéro fournisseur]) INNER JOIN [Contacts] AS [Contacts_1] ON [`Plan livraison`].[Numéro client] = [Contacts_1].[Numéro]) INNER JOIN [Articles] ON [`Plan livraison`].[Numéro article] = [Articles].[Numéro]) INNER JOIN [Couleurs] ON [`Plan livraison`].[Numéro couleur] = [Couleurs].[Numéro]) LEFT JOIN [Contacts] AS [Contacts_2] ON [`Plan livraison`].[Numéro client2] = [Contacts_2].[Numéro] ORDER BY [Contacts].[Nom], [Contacts_1].[Nom], [Articles].[Libellé], [couleur fournisseur] & '-' & [couleur client]")

    Si quelqu'un a une idée?! :
    Merci d'avance

  15. #15
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    re,

    Ce n'était pas du tt 1 incitation à faire en Java. Juste qu'en utilisant des [] ça passait, et que peut-être en PHP ça marcherait pareil. Content que tu aies trouvé.

    A +

  16. #16
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    FROM ((((
    [Contacts] 
         INNER JOIN [`Plan livraison`] 
                ON [Contacts].[Numéro] = [`Plan livraison`].[Numéro fournisseur]) 
         INNER JOIN [Contacts] AS [Contacts_1]
                ON [`Plan livraison`].[Numéro client] = [Contacts_1].[Numéro])
         INNER JOIN [Articles] 
                ON [`Plan livraison`].[Numéro article] = [Articles].[Numéro]) 
         INNER JOIN [Couleurs] 
                ON [`Plan livraison`].[Numéro couleur] = [Couleurs].[Numéro]) 
         LEFT JOIN [Contacts] AS [Contacts_2] 
                ON [`Plan livraison`].[Numéro client2] = [Contacts_2].[Numéro]
         ORDER BY [Contacts].[Nom], [Contacts_1].[Nom], [Articles].[Libellé], [couleur fournisseur] & '-' & [couleur client]")
    dans la requete, tu fais 2 fois la jointure entre 2 tables et ce sont des jointure recursive en plus et, en plus, avec une condition de jointure différente... je ne pense pas que ça puisse marcher.
    Il y a clairement un pb dans la façon dont tu joint les tables Contact et ... contact entre elles...

    explique nous plus dans le detail la requete que tu souhaite faire... on pourra peut être t'aiguiller mieux

    PS : remarque la façon de presenter correctement ta requete, avec des retours à la ligne et tout, c'est beau, c'est clair, et plus facile à dechiffrer pour tout le monde !

Discussions similaires

  1. [AC-2013] Table : suppression auto des espaces dans une table
    Par bdf94 dans le forum Modélisation
    Réponses: 0
    Dernier message: 17/04/2015, 14h50
  2. Modifier l'espacement dans la table des figures.
    Par Ladgalen dans le forum Mise en forme
    Réponses: 2
    Dernier message: 17/09/2009, 17h44
  3. [OpenOffice] [Debutant] Problème d'espace dans la table des matières
    Par sniperseb dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 24/04/2008, 09h25
  4. Envoi de dates identiques dans des tables
    Par beurnoir dans le forum Access
    Réponses: 6
    Dernier message: 10/10/2005, 20h22
  5. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo