Bonjour,

J'importe un fichier CSV dans une base de donnée postgreSQL comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
tmpfile1=`mktemp`
IDIMPORT=`cat idImport.txt`
inputFile=fichier.csv
 
        cat $inputFile | while read line; do
        VAR1=`echo $line | awk -F "|" '{ print $1}'`
        VAR2=`echo $line | awk -F "|" '{ print $2}'`
        SQL="INSERT INTO key_value (kv_name, kv_value, id_import) VALUES ('$VAR1', '$VAR2', CAST('$IDIMPORT' AS INTEGER));"
        echo $SQL >> $tmpfile1
done
 
psql -U user infoClient < $tmpfile1
 
rm -f tmpfile1
D'après un de mes tuteurs de stage, il serait plus interessant de ne pas passer par une boucle qui impose une multitude de querry à ma base de données.
Il serait possible d'envoyer la totalité d'un fichier csv dans une base de données, mais je ne vois pas trop comment ^^ . J'ai deja eu du mal a trouver cette solution ci .

Quelqu'un aurait deja essayé ?