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 :

[Débutante] erreur: invalid input syntax for integer


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut [Débutante] erreur: invalid input syntax for integer
    Bonjour;

    Je voudrais charger mes tables avec des fichiers.txt mais j'ai un message d'erreur lorsque je tape la commande COPY:

    CT32=# copy t_adresse from '/home/postgres/tableTxt/T_ADRESSE.txt';

    ERROR: invalid input syntax for integer: "insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_VILLE) values ( 1, 1, '123 rue du Général de Gaulle', '', '', '', '78000', 'VERSAILLES');"
    CONTEXT: COPY t_adresse, line 1, column adr_id: "insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_V..."

    J'ai supprimé cette table et je l'ai recrée en mettant l'id en serial primary key, mais cela ne change rien!

    Merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour, peux tu nous donner les premieres lignes de ton fichier texte

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut
    Oui voici quelques lignes:

    insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_VILLE) values ( 1, 1, '123 rue du Général de Gaulle', '', '', '', '78000', 'VERSAILLES');

    insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_VILLE) values ( 2, 3, '11 Grande Rue', '', '', '', '11254', 'MONTMAIZIN');

    insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_VILLE) values ( 3, 5, '147 rue de Vaugirard', '', '', '', '75015', 'PARIS');

    insert into T_ADRESSE (ADR_ID, CLI_ID, ADR_LIGNE1, ADR_LIGNE2, ADR_LIGNE3, ADR_LIGNE4, ADR_CP, ADR_VILLE) values ( 4, 2, 'Batiment Optima', 'ZI de la Croix Bleue', 'Route de Pezenas', '', '84524', 'VERGNOLLES CEDEX 452');

    j'ai sauté des lignes entre les insertions sur ce post pour que ça soit clair!

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour ,
    tu fais une confusion, pour utiliser copy ton fichier texte ne doit contenir que les données
    1, 1, '123 rue du Général de Gaulle', '', '', '', '78000', 'VERSAILLES'
    2, 3, '11 Grande Rue', '', '', '', '11254', 'MONTMAIZIN'
    dans ce cas là il faut preciser le delimiteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy ma_table from 'mon_fichier' with delimiter ','
    autrement tu peux utiliser ton fichier directement
    soit sous sur pgadmin dans la fenetre de requete tu colles ton fichier et tu lances la requete
    soit dans un teminal psql tu tapes la commande
    \i 'ton_fichier'
    (noublie pas les quotes)
    mais la methode copy est beaucoup plus rapide (interessant si données importantes)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut
    Merci pour ton aide!!
    j'ai résolu ce problème!

    une petite question:Lorsque que je veux charger une table j'ai une erreur d'encodage. Je convertis l'encodage en latin1 et ça marche, mais à chaque fois je dois le refaire, ce que je trouve bizarre!

    Existe-t-il une commande pour le faire une fois pour toute?

    Merci.

  6. #6
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Tu peux changer le default client encoding pour chaque user postgresql, comme ça plus besoin de le remettre quand tu te connectes avec
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/09/2011, 16h03
  2. [Débutant] Erreur de syntaxe ?
    Par j0o0 dans le forum Oracle
    Réponses: 1
    Dernier message: 04/01/2008, 22h58
  3. Réponses: 14
    Dernier message: 11/06/2007, 19h34
  4. Réponses: 10
    Dernier message: 27/01/2007, 13h54
  5. Invalid input syntax
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/04/2005, 16h05

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