Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Fri 27 July 2018 11:57

alexandra21
Juste Inscrit !
Date d'inscription: 25 Jul 2018
Messages: 7

Import CSV dans PostgreSQL

Bonjour à vous,

En utilisant la requête COPY, je voudrais importer des fichiers CSV dans PostgreSQL.

L'inconvénient est que je ne suis pas autorisée à modifier les données sources avant l'import pour remplacer les decimales en ',' par des '.' et modifier l'encodage ANSI en UTF-8 pour la gestion des caractères spéciaux.

Pour faire un test, j'ai modifié l'encodage ANSI en UTF-8 mais les caractères spéciaux sortent en '?' dans PostgreSQL. Egalement,

Comment avec la requête COPY, déclarer les décimales en ',' et gérer l'encodage des caractères spéciaux ?


Je vous remercie pour votre aide,

Hors ligne

 

#2 Sat 28 July 2018 11:57

Mathieu Denat
Participant actif
Lieu: Montpellier
Date d'inscription: 5 May 2010
Messages: 110

Re: Import CSV dans PostgreSQL

Bonjour,

Je pense qu'il est plus judicieux de traiter cette étape hors SGBD (il doit exister par mal d'outils faisant ça très bien, plutôt que de bricoler un truc directement en base).
Pour linux, il existe la commande iconv qui permet de basculer d'un charset vers un autre et donc de basculer d'ANSI en UTF-8. Par contre il va falloir savoir de quel ANSI on parle (probablement ISO8859-1 ou Windows-1252) pour filer la bonne instruction à iconv.

Voici le déroulé que j'imagine pour ledit script:
1. convertir le fichier avec iconv
2. se connecter à la BDD (avec psql)  et lancer copy à ce moment là (option -c: psql -h localhost -U blabla -d blibli -c 'COPY...')

Sinon il y a les foreign data wrappers, c'est pratique, mais je maîtrise pas! :p
Voir le petit tuto de MathieuB
https://si.cenlr.org/postgresql_fdw_taxref

Bonne journée.


Mathieu
C'est en forgeant qu'on devient forgeron

Hors ligne

 

Pied de page des forums

Powered by FluxBB