2017-07-17 25 views
1

私はCSVは以下のコマンドを使用してcockroachdbのテーブルにファイルをインポートしています:、日付時刻形式に誤り

ID, time 
14,2013-02-17 05:39:36.710332000 

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, $a2);"; done < sales.csv; 

私のcsvファイルは2つだけの行を持っています列の

データタイプ:私は次のエラーを取得する

first column: NUMBER(10, 0) 
second column: TIMESTAMP 

に基づいて
syntax error at or near "5" 

INSERT INTO sales VALUES (14, 2013-02-17 05:39:36.710332000 
             ^

、私は私が正しいTIMESTAMP形式(YYYY-MM-DD HH24:MI:SSXFF)を使用していと思います。

提案がありますか?

私も

2013-02-17 05:39:36 

のように、ミリ秒単位でなく第2列のデータを変更しようとしましたが、私は同じエラーを取得します。

答えて

2

あなたのタイムスタンプ文字列を引用符で囲む必要があります。

[email protected]:26257/test> INSERT INTO derp VALUES (1, 2013-02-17 05:39:36.710332000); 
invalid syntax: statement ignored: syntax error at or near "5" 
[email protected]:26257/test> INSERT INTO sales VALUES(1, '2013-02-17 05:39:36.710332000') 
INSERT 1 

あなたも、そうのようなことを行うには、スクリプトを変更することができます。

\| IFS=","; while read a1 a2; do echo "INSERT INTO sales VALUES ($a1, '$a2');"; done < sales.csv; 
+0

この入力ファイルはテストのためにのみ1行に縮小され、その場合は、元のファイルのすべての行について変更する必要があります。 – Cyrus

+0

入力スクリプトを変更して '$ a2'を引用することもできます。私は自分の答えを更新しました。 –

+0

ありがとう、私はコマンドを変更しました...($ a1、 '$ a2')...エラーはpq:name "" ID ""は定義されていません ""最初の列名で倍増します – Cyrus

関連する問題