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 :

Erreur de syntaxe au début de la requête


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Septembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2014
    Messages : 51
    Points : 49
    Points
    49
    Par défaut Erreur de syntaxe au début de la requête
    Bonjour,

    J'ai un souci que je ne parviens pas à résoudre malgré de nombreuses recherches et tentatives. Et à priori il ne s'agit que de syntaxe...
    Pour tout vous dire, je souhaite importer une BDD au format CSV dans postgreSQL (11), mais je n'ai pas besoin de toutes les colonnes. Du coup après quelque recherches j'ai trouvé une solution qui me permettrait de faire ce que je veux. J'obtiens donc une requête qui ressemble à ça :
    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
    DROP TABLE IF EXISTS bricolage;
    CREATE TEMP TABLE bricolage (bigfield TEXT);
     
    COPY bricolage FROM 'Z:\Myriam\COMMUNES\TARN\6_PLU\2_Donnees\Equipement\Annuaire_sante\ExtractionMonoTable_CAT18_ToutePopulation_201904110920.csv' WITH DELIMITER '!';
     
    DROP TABLE IF EXISTS annuairesante_import;
    SELECT
    	split_part(bigfield, ';', 3) AS id_nat_pp,
    	split_part(bigfield, ';', 5) AS civ_ex,
    	split_part(bigfield, ';', 8) AS co_prof,
    	split_part(bigfield, ';', 9) AS prof,
    	split_part(bigfield, ';', 15) AS t_savr_fr,
    	split_part(bigfield, ';', 13) AS savr_fr,
    	split_part(bigfield, ';', 20) AS raison_soc,
    	split_part(bigfield, ';', 21) AS enseigne,
    	split_part(bigfield, ';', 33) AS insee
    INTO annuairesante_import
    FROM bricolage;
    DROP bricolage;
    Sauf que j'ai encore et toujours ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ERROR:  ERREUR:  erreur de syntaxe sur ou près de « DROP »
    LINE 1: ...S False,TIMING False,SUMMARY False,BUFFERS False) DROP TABLE...
                                                                 ^
     
     
    SQL state: 42601
    Character: 103
    Si j'enlève la première ligne, l'erreur se reporte sur la ligne suivante, sur le TEXT... Après pas mal de recherches je demande donc un avis extérieur parce que si ça se trouve l'erreur est évidente, mais je suis incapable de dire où elle se situe (il me semble avoir utilisé les bonnes fonctions, avec les bons arguments, pas de mots réservés,...)...
    D'avance merci pour vos lumières !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 731
    Points : 1 416
    Points
    1 416
    Par défaut
    L'erreur n'est pas forcement sur le DROP
    une exécution instruction par instruction donne quoi ?
    Le savoir est une nourriture qui exige des efforts.

  3. #3
    Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Septembre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2014
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Bonjour, et merci pour votre réponse !

    En effet, je m'acharnais à tenter un "Explain Analyze" sur la requête et j'avais cette erreur de syntaxe, erreur qui disparaît lorsque j'exécute la requête... Mais j'avoue que je voulais tellement vérifier la requête avant de la lancer que je n'ai même pas pensé à tester...

    Du coup j'avais une ou deux erreurs liées aux droits de lecture du fichier (je l'ai placé dans le répertoire C:/ de mon PC et là ça marche), à un délimiteur (!) présent dans le texte qui imposait du coup la création d'un seconde colonne (j'ai changé le délimiteur par un autre et ça marche).

    Du coup voilà ma requête d'import :
    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
    DROP TABLE IF EXISTS bricolage;
     
    CREATE TEMPORARY TABLE bricolage (bigfield TEXT);
     
    COPY bricolage FROM 'C:\annuaire_sante_2019.csv' WITH DELIMITER '$';
     
    UPDATE bricolage SET bigfield = replace(bigfield,'"','');
     
    DROP TABLE IF EXISTS annuairesante_import;
    SELECT
    	split_part(bigfield, ';', 3) AS id_nat_pp,
    	split_part(bigfield, ';', 5) AS civ_ex,
    	split_part(bigfield, ';', 8) AS co_prof,
    	split_part(bigfield, ';', 9) AS prof,
    	split_part(bigfield, ';', 15) AS t_savr_fr,
    	split_part(bigfield, ';', 13) AS savr_fr,
    	split_part(bigfield, ';', 20) AS raison_soc,
    	split_part(bigfield, ';', 21) AS enseigne,
    	split_part(bigfield, ';', 33) AS insee
    INTO annuairesante_import
    FROM bricolage;

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

Discussions similaires

  1. [AC-2010] Erreur de syntaxe opérateur absent dans une requête
    Par sardaucar dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/10/2014, 16h20
  2. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21
  3. [MySQL] Erreur de syntaxe sur requête
    Par winnie82 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/03/2006, 13h51
  4. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50
  5. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53

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