sqlite3がダブルクォートでエスケープされているcsvをインポートしてくれない件
どうしよう。
- ODBC経由で接続
- 専用のプログラムを作る
- 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