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

Requêtes PostgreSQL Discussion :

Problème de longueur de VALUE


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut Problème de longueur de VALUE
    Bonjour,

    J'ai un renvoi d'une erreur que je ne comprends pas sur une requête comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /* CREATE TABLE */
    DROP TABLE "ma_table";
    CREATE TABLE "ma_table" (ID VARCHAR(100),
    TABLE_ORIGINE VARCHAR(100),
    TABLE_DESTINATION VARCHAR(100),
    FILTRE VARCHAR(500));
    /* INSERT QUERY */
    INSERT INTO "ma_table" VALUES
    ('001','table_origin_1','table_destination_1','filtre'),
    ('002','table_origin_2','table_destination_2','filtre'),
    ...
    ('200','table_origin_200','table_destination_200','filtre'),
    Cela me renvoit l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ERROR:  VALUES lists must all be the same length
    LINE 37: ('204','table_origine204','table-destinat','filtre'),
              ^
    SQL state: 42601
    Character: 9165
    Désolé je suis obligé d'anonymiser un peu le code pour des raisons professionnels. Merci d'avance de vos réponse

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    On peut voir les quelques lignes précédant la 204 ?
    Au passage, vous avez oublié d'anonymiser le nom de la table dans l'INSERT...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut
    En gros, avant la 204 tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO "ma_table" VALUES
    ...
    ('203','batiment','b_bati_surf_n0','nature =   Indifférenciée   AND (usage_1 IN (  Agricole  '',''  Annexe  '',''  Indifférencié  '',''  Résidentiel  ) OR usage_1 is null) AND etat_de_l_objet IN (  En service  '',''  En ruine  )'),
    ('204','batiment','b_bati_surf_n0','((nature =   Indifférenciée   AND usage_1 IN(  Commercial et services  '',''  Industriel  '',''  Sportif  )) OR (nature =   Industriel',' agricole ou commercial   AND usage_1 <>   Religieux  ) OR nature =   Tribune  ) AND etat_de_l_objet IN (  En service  '',''  En ruine  )'),
    Bon, j'anonymise plus trop, espérons que les collègues naviguent pas là XD

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Citation Envoyé par Eckmül Voir le message
    Bon, j'anonymise plus trop, espérons que les collègues naviguent pas là XD
    Pas de chance, y'a moi . J'ai reconnu le nom de la table...

    Bon pour le problème, c'est bien à la ligne 204 que ça ne va pas. Les apostrophes doivent être doublées dans cette partie du filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OR (nature =   Industriel', ' agricole ou commercial
    Il faut l'écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OR (nature =   Industriel'', '' agricole ou commercial
    Et ça devrait aller mieux...

    Autre solution spécifique à PostgreSQL, délimiter les chaînes par $$, ce qui permet de ne garder que les quotes simples pour délimiter les chaînes de caractères dans le filtre.
    Ainsi, la ligne 204 s'écrirait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ('204', 'batiment', 'b_bati_surf_n0', $$((nature =   Indifférenciée   AND usage_1 IN(  Commercial et services  ','  Industriel  ','  Sportif  )) OR (nature =   Industriel', ' agricole ou commercial   AND usage_1 <>   Religieux  ) OR nature =   Tribune  ) AND etat_de_l_objet IN (  En service  ','  En ruine  )$$)
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut
    Merci bien pour tout !

    Bonne continuation, surtout si tu es dans le même bâtiment que moi XD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [mysql5]problème truncated incorrect double value xx
    Par moulefrite dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/11/2006, 17h17
  2. Problème avec ADOQuery.Fields[].Value
    Par Gaadek dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/07/2006, 10h28
  3. Problème de longueur de lignes Excel.
    Par Mlezen dans le forum Excel
    Réponses: 3
    Dernier message: 03/05/2006, 16h29
  4. Réponses: 3
    Dernier message: 15/02/2006, 17h46
  5. Problème Cast avec NULL values
    Par WwiloO dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/10/2005, 10h49

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