Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2011, 12h49   #1
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Par défaut Import d'un fichier avec en tete

Bonjour je suis en phase de la pratique d'un SGBDR et on me demande l'import des tuples depuis un fichier.txt contenant une en-tete
voici le fichier
"etudiant_id","nom","prenom","date_naissance","adresse","ville","telephone","fax","email"
"6","Zayani","Hamu","1982-08-21","32, Rue des Lys","Khénifra",,,
"7","Khattabi","Mohammed","1982-09-15","42, Rue de la lavande","Al Hoceima",,,
"8","Raissouni","Ahmed","1982-06-09","15, Rue du coquelicot","Tétouan",,,

Je voudrais savoir comment faire pour importer ce fichier dans la tables des tuples, la syntaxe du début est comme suit:

COPY ETUDIANT " Nom de la table"
FROM 'E:/NewEtudiant.txt'
WITH CSV HEADER " C'est là où ça coince "
the.dynamik.yop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 14h33   #2
Membre régulier
 
Homme Loïc JUSTIN
Administrateur de base de données
Inscription : novembre 2004
Messages : 234
Détails du profil
Informations personnelles :
Nom : Homme Loïc JUSTIN
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2004
Messages : 234
Points : 91
Points : 91
Bonjour

Ta base Postgresql est en quel version?
__________________
Si tu tapes ta tête contre une cruche et que ça sonne creux,
n'en déduits pas que c'est la cruche qui est vide.
JUSTIN Loïc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 16h44   #3
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
Message d'erreur?
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 22h24   #4
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Voici le message d'erreur kon maffiche
ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xe96e69
CONTEXT: COPY etudiant, ligne 2
the.dynamik.yop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 22h29   #5
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
D'après le message d'erreur on peut penser que les données sont encodées en iso-8859 et non utf-8 alors que la base est en utf-8.
Dans ce cas avant le COPY, tu peux exécuter la commande suivante:
Code :
SET client_encoding='LATIN1';
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 22h41   #6
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Merci ça marche ^^ Tu peux m'expliker davantage?
the.dynamik.yop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 14h46   #7
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
Le fichier de données est encodé en iso-8859-1 ou équivalent proche, qui est un encodage ouest-européen qui fait le caractère E accent aigu par exemple est représenté par l'octet E9 en hexadécimal.

L'utf-8 est un autre encodage, international celui-là, dans lequel le E accent aigu est representé par les octets C3 suivi de A9.

Pour interpréter les données, postgresql a besoin de savoir quel est leur encodage. Comme ta base de données est certainement en utf-8, postgresql suppose par défaut que les données à insérer sont aussi en utf-8. Mais si ce n'est pas le cas, il faut le préciser explicitement l'encodage avec le paramètre client_encoding.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h53.


 
 
 
 
Partenaires

Hébergement Web