2017-07-31 4 views
0

私の入力ファイルには各フィールドの引用符があります。H2データベースCSVREADは引用符を切り捨てません

"1386568706","1","","","","DK","ME","LY PRECRT","","","A.D." 

私はこれらのフィールドをCSVREADで読みたいと思っています。私は次のオプションを試しました。

insert into s_no_date 
select convert(PI,bigint), 
convert(ENT_CODE,int), 
REPLACEMENT_PI, 
EMN, 
PNAME, 
d, 
er, 
ert, 
sd, 
cg, 
sdf 
','fieldDelimiter=') 

次のエラーが発生しています。

Caused by: java.lang.NumberFormatException: For input string: ""1578956447"" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Long.parseLong(Long.java:578) 
    at java.lang.Long.parseLong(Long.java:631) 
    at org.h2.value.Value.convertTo(Value.java:942) 

別のオプションは、試してみました:

insert into s_no_date 
select convert(PI,bigint), 
convert(ENT_CODE,int), 
REPLACEMENT_PI, 
EMN, 
PNAME, 
d, 
er, 
ert, 
sd, 
cg, 
sdf 
') 

エラー:

Caused by: java.lang.NumberFormatException: For input string: "" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Integer.parseInt(Integer.java:592) 
    at java.lang.Integer.parseInt(Integer.java:615) 
    at org.h2.value.Value.convertTo(Value.java:940) 

答えて

0

後は働いていたものです。また、ENT_CODEのデータ型をnullからvarcharにintから変更する必要がありました。私はフィールドとして引用符をエスケープしなければならなかった.Delimiter

insert into s_no_date 
select convert(PI,bigint), 
ENT_CODE, 
REPLACEMENT_PI, 
EMN, 
PNAME, 
d, 
er, 
ert, 
sd, 
cg, 
sdf 
','fieldDelimiter=\"'); 
関連する問題