sqlite3がダブルクォートでエスケープされているcsvをインポートしてくれない件

どうしよう。

  1. ODBC経由で接続
  2. 専用のプログラムを作る
  3. sqlite3を修正

とりあえず、CSVを読んでトランザクションを実行する書き捨てプログラムを書いて解決した。

時間があったらsqlite3用のドライバとか入れて、サードパーティーのツールを使ってODBC経由で流し込むのが簡単そうだなー

$ wget --no-check-certificate https://raw.github.com/gist/1968255/
$ chmod +x impsqlite3
$ ./impsqlite3
usage: ./impsqlite3 db csv table
$ sqlite3 db.sqlite3 '.schema'
CREATE TABLE target (id integer primary key, entry text, dat datetime, tat timestamp);
$ cat > data.csv
"1","text01テキ
スト","2012-01-01","2012-01-01"
"2","text01テキスト","2012-01-01","2012-01-01"
"3","text01テキスト","2012-01-01","2012-01-01"
$ ./impsqlite3 ./db.sqlite3 ./data.csv target
$ sqlite3 db.sqlite3 'select * from target'
1|text01テキ
スト|2012-01-01|2012-01-01
2|text01テキスト|2012-01-01|2012-01-01
3|text01テキスト|2012-01-01|2012-01-01