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

PostgreSQL Discussion :

[Requête SQL]insertion d'un champ avec un caractère spécial dans une table


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 11
    Points
    11
    Par défaut [Requête SQL]insertion d'un champ avec un caractère spécial dans une table
    Bonjour à tous,

    J'aimerai créer une table avec une colonne "location" qui référence l'adresse absolue des fichiers en l'occurences des fichiers images.
    Or il n'accepte pas le caractère "\", j'ai essayé avec \\ ou E'\'...

    comment puis-je faire?

    Merci d'avance

    p.s. : voici mon bout de la requête
    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
    BEGIN;
    CREATE TABLE "dted1" (gid serial PRIMARY KEY,"location" varchar(255));
    SELECT AddGeometryColumn('','dted1','the_geom','-1','MULTIPOLYGON',2);
    COPY "dted1" ("location",the_geom) FROM stdin;
    c:\\e000\\n42.dt1	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D804540824E1BE8B401F03F74DA40A70D804540824E1BE8B401F03F8C25BF58F2FF44404F1BE8B4814E3BBF8C25BF58F2FF44404F1BE8B4814E3BBF74DA40A70D804540
    "c:\\e000\\n43.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D004640824E1BE8B401F03F74DA40A70D004640824E1BE8B401F03F8C25BF58F27F45404F1BE8B4814E3BBF8C25BF58F27F45404F1BE8B4814E3BBF74DA40A70D004640
    "c:\\e000\\n44.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D804640824E1BE8B401F03F74DA40A70D804640824E1BE8B401F03F8C25BF58F2FF45404F1BE8B4814E3BBF8C25BF58F2FF45404F1BE8B4814E3BBF74DA40A70D804640
    "c:\\e000\\n45.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D004740824E1BE8B401F03F74DA40A70D004740824E1BE8B401F03F8C25BF58F27F46404F1BE8B4814E3BBF8C25BF58F27F46404F1BE8B4814E3BBF74DA40A70D004740
    "c:\\e000\\n46.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D804740824E1BE8B401F03F74DA40A70D804740824E1BE8B401F03F8C25BF58F2FF46404F1BE8B4814E3BBF8C25BF58F2FF46404F1BE8B4814E3BBF74DA40A70D804740
    "c:\\e000\\n47.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D004840824E1BE8B401F03F74DA40A70D004840824E1BE8B401F03F8C25BF58F27F47404F1BE8B4814E3BBF8C25BF58F27F47404F1BE8B4814E3BBF74DA40A70D004840
    "c:\\e000\\n48.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D804840824E1BE8B401F03F74DA40A70D804840824E1BE8B401F03F8C25BF58F2FF47404F1BE8B4814E3BBF8C25BF58F2FF47404F1BE8B4814E3BBF74DA40A70D804840
    "c:\\e000\\n49.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E3BBF74DA40A70D004940824E1BE8B401F03F74DA40A70D004940824E1BE8B401F03F8C25BF58F27F48404F1BE8B4814E3BBF8C25BF58F27F48404F1BE8B4814E3BBF74DA40A70D004940
    "c:\\e000\\n50.dt1"	010600000001000000010300000001000000050000004F1BE8B4814E4BBF74DA40A70D804940049D36D06903F03F74DA40A70D804940049D36D06903F03F8C25BF58F2FF48404F1BE8B4814E4BBF8C25BF58F2FF48404F1BE8B4814E4BBF74DA40A70D804940
    \.
    END;
    Les nombres ceux sont des références spatiales pour de la localisation.

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Normalement pour insérer des \ t'as juste à les échapper
    Si tu fait un insert into test (location) values ('c:\\e000\\n43.dt1');
    en faisant un select location il te renvoie
    c:\e000\n43.dt1;

    donc à priori il prends bien les \

    Mais t'as pas mis ton message d'erreur t'es sûr que l'erreur proviens bien des '\' ?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse, je vais essayer avec un "insert into"
    voilà la réponse que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ERROR: syntax error at or near "c"
    État SQL :42601
    Caractère : 197
    si je ne mets pas de ' '
    si je mets des ' ' voilà l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WARNING:  nonstandard use of \\ in a string literal
    LIGNE 5 : 'c:\\e000\\n42.dt1'       0106000000010000000103000000010000...
              ^
    ASTUCE : Use the escape string syntax for backslashes, e.g., E'\\'.
     
    ERROR: syntax error at or near "'c:\\e000\\n42.dt1'"
    État SQL :42601
    Caractère : 197

  4. #4
    Membre habitué Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Points : 197
    Points
    197
    Par défaut
    Salut,

    Je ne vois pas d'où peut venir ton problème.
    En créant une table et en faisant un select, tout fonctionne correctement ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    INSERT INTO matable ("monchamps")
           VALUES('c:\\ploum');
     
    SELECT * FROM matable;
     
        ----
        |c:\ploum
        |

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponse, finalement je suis passé par cette soluce

Discussions similaires

  1. [MySQL] Insertion de 3 champs issue d'un formulaire dans 2 tables
    Par IRISnse dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 10/04/2008, 16h04
  2. Réponses: 6
    Dernier message: 06/02/2008, 14h05
  3. Réponses: 2
    Dernier message: 26/07/2007, 08h35
  4. [SQL] Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 13h28
  5. Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2006, 13h21

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