Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 19/05/2018 06:01:58
- big1
- Membre
Créer une table à partir d'un fichier CVS
Bonjour,
en 9.6
Comment Créer une table à partir d'un fichier CVS?
D'avance merci.
Hors ligne
#2 19/05/2018 10:44:17
- gleu
- Administrateur
Re : Créer une table à partir d'un fichier CVS
Merci de détailler votre question, elle n'a pas trop de sens comme ça. (ie, un fichier CSV, ce sont des données, pas la définition d'une table... donc on peut peupler une table à partir d'un fichier CSV mais pas deviner sa définition).
Guillaume.
Hors ligne
#3 19/05/2018 11:34:30
- big1
- Membre
Re : Créer une table à partir d'un fichier CVS
Bonjour Guillaume,
Il y a des scripts ou manières qui crée une table et importe les données à partir d'un fichier CSV.
Script:
https://stackoverflow.com/questions/424 … le_rich_qa
#!/bin/bash
# makes a CREATE TABLE statement out of the first line of a CSV file
# usage: mktab <tabname> <CSV file>
if [ -z "$2" -o -n "$3" ]; then
echo "usage: mktab <tabname> <CSV file>" 1>&2
exit 1
fi
IFS=,
first=1
echo -n "CREATE TABLE \"$1\" ("
for col in $(head -1 "$2"); do
if [ $first -eq 1 ]; then
first=0
else
echo -n ', '
fi
echo -n "\"$col\" numeric(10,2)"
done
echo ');'
exit 0
Outil:
pgfutter:
https://github.com/lukasmartinelli/pgfutter
Y a-t-il une méthode propre à Postgres autre que pgfutter?
D'avance merci.
Hors ligne
#4 19/05/2018 19:14:14
- gleu
- Administrateur
Re : Créer une table à partir d'un fichier CVS
Vous avez compris ce que fait ce script ? parce que ça peut fonctionner pour certains fichiers CSV mais clairement pas pour tous. En gros, ce script récupère la première ligne du fichier CSV en espérant y trouver les noms des colonnes. Il construit ensuite l'ordre SQL de création de table en supposant que toutes ces colonnes sont de type numeric(10,2), ce qui est possible dans certains cas et hautement improbable dans la majorité des cas.
Guillaume.
Hors ligne
Pages : 1