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

Administration PostgreSQL Discussion :

Comment importer données dans base en LATIN1


Sujet :

Administration PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut Comment importer données dans base en LATIN1
    Bonjour à tous,

    j'administre une base de données postgreSQL dont l'encodage est en Latin1.
    J'aimerais importer des données en format CSV.
    Mon problème est que mon import plante car ma base de données est encodée en Latin1.

    le message d'erreur est le suivant:

    ERROR: invalid byte sequence for encoding "UTF8": 0xe92064
    État SQL :22021
    Astuce : This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
    Contexte : COPY perval_filtre, line 2

    J'ai essayé d'encoder mon fichier en UFT8 mais ça ne marche pas:

    ERROR: character 0xefbbbf of encoding "UTF8" has no equivalent in "LATIN1"
    État SQL :22P05
    Contexte : COPY perval_filtre, line 1
    J'ai lu que je pouvais changer l'encodage de ma base de données seulement ce n'est pas moi qui l'ai créée et j'ai quelques réticences à me lancer là dedans.
    Je voudrais donc changer l'encodage de mes données en LATIN1, comment puis je faire?
    J'utilise notepad ++ et Excel pour manipuler mes données.

    Merci de vos réponses.

    mat_elot

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par mat_elot Voir le message
    J'ai essayé d'encoder mon fichier en UFT8 mais ça ne marche pas:

    ERROR: character 0xefbbbf of encoding "UTF8" has no equivalent in "LATIN1"
    Ces 3 octets sont un BOM (voir http://fr.wikipedia.org/wiki/Marque_...odages_unicode)
    dûs au format de sauvegarde.

    Dans les encodages proposés par Notepad++, il y a "Convertir en UTF-8 (sans BOM)", c'est celui-là qu'il faut choisir pour avoir un fichier UTF-8 utilisable directement par le COPY de postgresql.

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut
    Merci de ta réponse estofilo,

    Dans les encodages proposés par Notepad++, il y a "Convertir en UTF-8 (sans BOM)", c'est celui-là qu'il faut choisir pour avoir un fichier UTF-8 utilisable directement par le COPY de postgresql.
    Je n'arrive pas à garder l'encodage en UTF-8 (sans BOM), quand je le converti alors qu'il est seulement en ANSI, que je ferme le fichier et que je le ré-ouvre, je ne le retrouve pas en UTF-8 (sans BOM).
    Et en essayant de l'importer sans l'ouvrir, ca me met le même message d'erreur (1er cité).

    Merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Je n'arrive pas à garder l'encodage en UTF-8 (sans BOM), quand je le converti alors qu'il est seulement en ANSI, que je ferme le fichier et que je le ré-ouvre, je ne le retrouve pas en UTF-8 (sans BOM).
    Ca fonctionne pour moi. A partir d'un fichier ANSI:
    1) Fichier>Ouvrir
    2) aller dans le menu Encodage. normalement "Encoder en ANSI" est coché
    3) Lancer Encodage>Convertir en UTF-8 (sans BOM)
    4) sauver le fichier sous un nom différent Fichier>Enregistrer sous
    5) Fichier>Fermer
    6) Fichier>Ouvrir pour recharger le nouveau fichier
    7) Aller dans Encodage. On doit voir "Encoder en UTF-8 (sans BOM)" qui est coché

    Comme la détection automatique d'un encodage de caractères n'est pas fiable à 100%, il se peut que l'étape 7 ne soit pas OK, ce n'est pas grave.

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut
    Merci de ta réponse estofilo.

    je n'y arrive toujours pas.
    Je n'ai pas de menu encodage par contre avec ma version....du moins je ne la trouve pas.
    J'ai un onglet "format", est bien cela dont tu parles?

    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
    Essaye juste, sans passer par notepad++ ou autre éditeur de texte, de créer un script SQL dans lequel tu mettrais la commande "SET CLIENT_ENCODING TO 'LATIN1';" puis ensuite ta commande COPY
    Puis exécute ton script SQL
    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/

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par mat_elot Voir le message
    Merci de ta réponse estofilo.

    je n'y arrive toujours pas.
    Je n'ai pas de menu encodage par contre avec ma version....du moins je ne la trouve pas.
    J'ai un onglet "format", est bien cela dont tu parles?

    Merci!
    Non c'est bien un menu Encodage. Copie d'écran en pièce jointe!
    Notepad++ 5.6.7
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/07/2011, 10h55
  2. Copier les données dans base externe
    Par bozolozo dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 09h56
  3. methodologie pour Supprimer données dans base de données
    Par elkhy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 26/04/2006, 18h30
  4. insertion de données dans Base de données Oracle 9
    Par hottnikks_79 dans le forum SQL
    Réponses: 2
    Dernier message: 16/03/2006, 00h07
  5. [ADO.Net][VB.NET/C#]Comment importer .xls dans DataSet ?
    Par smedini dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/01/2006, 15h59

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