1

これは私のsqliteコードです:

create table A(A1 text, A2 text);
.separator ","
import outData.csv A

私はそのようにエラーステートメントを受け取ります:

outData.csv Line 4: expected 2 columns of data but found 4

4行目は次のようになります。

Hallieo,"h, a, and ll"

エラーメッセージが表示される理由を理解しました。しかし、「h、a、ll」を1つのレコードとして保存する方法を誰かが提案できるかどうか疑問に思いました。したがって、二重引用符が存在する場合に、separatorコマンドをオーバーライドできます。

助けてくれてありがとう。

4

1 に答える 1

2

sqlite3 コンソール プログラムの行を個々のフィールドに分割するトークナイザーは単純であり、この課題には対応していません。

ファイルを 1 行ずつ読み取り、各行をトークン化し、データベースに保存するには、独自のプログラムを作成する必要があります。プログラミング言語を本当に知っていれば、1 日かかる楽しいチャレンジです。

私自身、私は C++ を使用しており、このようなことには boost::tokenizer を使用します。 http://www.boost.org/doc/libs/1_46_0/libs/tokenizer/tokenizer.htm

于 2011-06-07T16:15:10.460 に答える