#1 Fri 01 May 2020 08:29
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Import table dans PostgreSQL probleme en-tete colonne
Bonjour
je me demande si il existe une solution lors d'un import dans postgresql pour que lorsqu'il existe des caracteres spéciaux comme des espaces qu'il ne le remplace pas automatiquement dans le writer "Postgresql" par un "_" mais mette la colonne entre " " ex : Code EPCI devient "Code EPCI" et non pas Code_EPCI.
Mon second probleme est que j'ai des champs assez long (cent caractere) qu'il me tronque automatiquement dans le writer postgres, et je ne sais pas si ca vient de FME ou de postgres ?
Merci à vous
Hors ligne
#2 Mon 04 May 2020 12:30
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: Import table dans PostgreSQL probleme en-tete colonne
Bonjour,
effectivement les caractère spéciaux sont remplacés automatiquement via FME.
Bien qu'il soit effectivement possible d'avoir des caractères spéciaux dans une table PG, je vous déconseille fortement de le faire, vous risquez d'avoir des soucis par la suite avec les différents outils qui accéderons à ces tables.
Si vous souhaitez quand même le faire, vous pouvez essayer de créer les tables au préalable dans PG et lors de l'ajout de la destination dans FME d'importer la définition à partir du jeux de données existant. Je n'ai pas testé et je ne sais pas si cela fonctionne...
Concernant la longueur des noms de champs, de tête la limite postgres va au delà des 100 caractères mais FME fait peut être cela pour garder une compatibilité avec les différentes version de PG. Mais de la même manière que précédemment, je vous déconseille d'avoir des noms de champs aussi long. D'une part ça ne favorise la lisibilité et lecture des tables et d'autre part si vous avez des requêtes à écrire à la main , c'est d'une part très long et rébarbatif et d'autre part source d'erreur.
Vous trouverez sur intenet beaucoup de ressources vous présentant les bonnes pratiques à mettre en oeuvre lors de la création d'une base de données (Postres ou autres) qu'ils ne faut pas négliger pour que la base soit performante, lisible et évolutive.
Bonne journée
Xavier
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#3 Wed 06 May 2020 08:14
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Import table dans PostgreSQL probleme en-tete colonne
Merci pour cet elément de réponse. Malheureusement pour les entetes pas trop le choix car les clients veulent lire le tableau et comprendre sans utiliser le dictionnaire de variables. Je vais trouver un entre deux. Effectivement l'idée de la compatibilité n''est pas bete et approfondir de mon coté.
Merci à vous "xav" d'avoir éclairer ma lanterne. Une trés bonne journée
Hors ligne
#4 Wed 06 May 2020 09:46
Re: Import table dans PostgreSQL probleme en-tete colonne
Bonjour,
Par défaut, PostgreSQL limite les noms d'objets à 63 caractères (https://www.postgresql.org/docs/12/sql- … xical.html); vous pouvez modifier à cette valeur en recompilant le logiciel.
Pour les espaces et autres caractères spéciaux, peut-être que les clients pourraient se satisfaire de consulter une vue qui renommerait les colonnes à leur convenance. Si besoin de mise à jour un trigger ferait le job.
Jean-Marie
Azimut
Hors ligne