2017-07-31 93 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的數據類型從int更改爲varchar,因爲它可以爲空。我不得不逃脫報價作爲領域Delimiter

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