vendredi 20 décembre 2013

Transformer un script SQL avec des "insert" en fichier csv

Il est souvent utile de transformer des fichiers excel en expressions SQL, en "INSERT" SQL. Et inversement (plus rare) depuis le SQL vers un fichier CSV, c'est ce cas-ci que j'expose. Il s'agit d'une procédure qui peut certainement être optimisée. Si vous trouvez une optimisation possible, lâchez vous !

1. copy fichier.sql fichier.csv

2. vim fichier.csv

3.  :%s/^.*VALUES('.\{32}', '......\(.*\)', 'VALUE', '\(.*\)', '\(.*\)', null);/\1\t\2\t\3/g
>> Une ligne comme :
INSERT INTO country(id, constant_key, constant_type, nl_value, fr_value, properties) VALUES('d934509f8f894de79a786e284bdc735a', '00000_XG', 'VALUE', 'NIEUW-ZEELANDS OCEANIE', 'OCEANIE NEO-ZELANDAISE', null);

>> est remplacée par :
 XG      NIEUW-ZEELANDS OCEANIE  OCEANIE NEO-ZELANDAISE

4. Je veux ensuite que mon fichier soit trié alors:
:%sort
(tout simplement)

Plus d'infos : vimregex.com