csvからinsert文を組み立てるときによくつかうやつ
いつも、忘れる。何度もメモしてる気がする。
csvからinsert文を組み立てる
cat z.csv 2011-01-01 01:02:00,tarou,get1 2011-01-01 01:02:10,aa,get2 2011-01-01 01:02:10,jiro,put1 # 上記をinsert文へ # シングルクォートは\047で入れることもできる(他のやり方もある) cat z.csv | nawk -F, '{printf("insert into Ztable values(to_date(\047%s\047,\047yyyy-mm-dd hh24:mi:ss\047),\047%s\047,\047%s\047)",$1,$2,$3)}' > insert_ztable.sql # 100行ごとにcommitを入れる # printfを使って改行コードを入れるのがコツ、よくelseを書き忘れてcommitばっかりのsqlをつくってしまう。 cat insert_ztable.sql | awk '{if((NR % 100) == 0){printf("%s\ncommit;\n",$0)}else{print $0}}' > insert_ztable2.sql # 末尾にcommitを入れる # 入れ忘れて、よく最後の方だけデータがなくて件数が合わなくて困ったりする。 echo "commit;" >> insert_ztable2.sql