[英]LOAD DATA INFILE MYSQL Error
我想使用load data infile命令在java表中的mysql表中加載文件,但是我收到MySQL語法錯誤:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
sql語句如下:
String sql = "LOAD DATA LOCAL INFILE '/Dataset/"+listOfFiles[i].getName()+".txt'" +
" INTO TABLE data " +
" CHARACTER SET utf8 " +
" FIELDS " +
" TERMINATED BY '|' " +
" LINES " +
" STARTING BY 'status' " +
" TERMINATED BY '\n' " +
" (@col_type, @col_origin, @col_text, @col_url, @col_id, @col_time, @col_retcount)"+
" set userid = '1234' "
" , original = @col_origin "+
" , datatext = @col_text "+
" , url = @col_url "+
" , id = @col_id "+
" , retcount = @col_retcount "+
" , date = str_to_date(@col_time, '%m/%d/%Y') "+
" , isanswer = CASE WHEN @col_origin LIKE '% abcd %' THEN 1 ELSE 0 END ";
我的問題是我無法發現錯誤。 有人可以幫我嗎?
您的Java字符串中附近需要有兩個反斜杠(\\)
" Terminated By '\\n' " +
^ new
那么,您的字符串將如下所示:
String sql = "LOAD DATA "
+ " LOCAL INFILE '/Dataset/"+listOfFiles[i].getName()+".txt'"
+ " INTO TABLE data "
+ " CHARACTER SET utf8 "
+ " FIELDS "
+ " TERMINATED BY '|' "
+ " LINES "
+ " STARTING BY 'status' "
+ " TERMINATED BY '\\n' "
+ " (@col_type, @col_origin, @col_text, @col_url, @col_id, @col_time, @col_retcount)"
+ " set userid = '1234' "
+ " , original = @col_origin "
+ " , datatext = @col_text "
+ " , url = @col_url "
+ " , id = @col_id "
+ " , retcount = @col_retcount "
+ " , date = str_to_date(@col_time, '%m/%d/%Y') "
+ " , isanswer = CASE WHEN @col_origin LIKE '% abcd %' THEN 1 ELSE 0 END ";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.