Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2012, 16h37   #1
Shiva
Membre du Club
 
Homme Stéphane
Développeur Web
Inscription : septembre 2005
Messages : 104
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 38
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : septembre 2005
Messages : 104
Points : 48
Points : 48
Envoyer un message via MSN à Shiva
Par défaut Problème avec l'importation de données avec COPY

Bonjour,
J'ai un petit soucis avec l'importation de données dans une table. Les données en question sont des logs apache. Voici le message d'erreur :
Code :
1
2
3
4
5
apache=> \copy apache_brut_log (line_log) FROM '/mnt/apache_log/todo/access.log.2012.05.06'
ERREUR:  séquence d'octets invalide pour l'encodage « UTF8 » : 0xe97469
ASTUCE : Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas
au jeu de caractères attendu par le serveur, le jeu étant contrôlé par « client_encoding ».
CONTEXTE : COPY apache_brut_log, ligne 16372 : « 2012-05-06 17:35:02 # 150.70.172.104 # 302 # /var/www/web001/Esth\xe9tique #  # HTTP/1.0 # - ... »
Le problème vient certainement de la chaine "Esth\xe9tique".
Le fichier est en UTF8 sans BOM (vérifié avec notepad++)
J'ai tenté le coup avec \encoding LATIN1 avant le \copy mais le problème reste le même...
Sinon, ma base est encodée en UTF8 et le champ "line_log" est de type TEXT

Y a t-il un moyen de "forcer" l'insertion de ce genre de ligne dans ma table ?
Merci
__________________
Stéphane
http://photos.nazgul.fr
Shiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 21h04   #2
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
Citation:
J'ai tenté le coup avec \encoding LATIN1 avant le \copy mais le problème reste le même...
E9 en hexa c'est l'octet qui représente le E accentué minuscule en ISO-8859-1, et hors séquence particulière cet octet n'est pas valide en UTF8. C'est ce que dit le message d'erreur.

L'erreur ne peut pas être la même si le client_encoding est UTF8 ou LATIN1.

Il faudrait voir si le fichier contient un mix de plusieurs encodages.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 21h23   #3
Shiva
Membre du Club
 
Homme Stéphane
Développeur Web
Inscription : septembre 2005
Messages : 104
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 38
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : septembre 2005
Messages : 104
Points : 48
Points : 48
Envoyer un message via MSN à Shiva
Ok pour le caractère, sinon, le fichier est un fichier de log apache et là je ne sais pas du tout si il y a un mix de plusieurs encodages.
__________________
Stéphane
http://photos.nazgul.fr
Shiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h55.


 
 
 
 
Partenaires

Hébergement Web