Hey,
Je suis en train d'écrire un petit script qui met à jour des données dans une db.
Je recois en entrée un fichier plat au format texte qui contient les données suivantes :
RecordID;free text
Il me suffit alors de faire un update dans ma db en rajoutant le free text au record identifié par RecordID. Facile non ?
Je fait donc une boucle pour lire tout le fichier d'entrée, je découpe la ligne en plusieurs variable et je fais appel à un script sql pour l'update :
Le truc c'est que si le champ free text contient un ";" je ne récupère pas toute l'info pour l'update de mon record.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while read parameters ; do param1=$(print $parameters|cut -f1 -d';') param2=$(print $parameters|cut -f2 -d';') sqlplus -s $ORACONNECT @$SQLFILE $param1 $param2 done < InputFile.txt
Avec une entrée tel que :
15465954;ceci est un champ texte libre; comme vous le voyez il contient un ";"
je n'update le record 15465954 qu'avec ceci est un champ texte libre et pas avec ceci est un champ texte libre; comme vous le voyez il contient un ";" comme je le voudrais..
Une idée ?
Partager