简体   繁体   English

LOAD DATA INFILE MYSQL错误

[英]LOAD DATA INFILE MYSQL Error

I'd like to load a file in a mysql table thrugh java program using load data infile command but I am receiving MySQL Syntax 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

The sql statement is the following: 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 ";

My problem is that I cannot spot the error. 我的问题是我无法发现错误。 Could anyone help me? 有人可以帮我吗?

You need to have two backslashes (\\) in your Java String near 您的Java字符串中附近需要有两个反斜杠(\\)

"       Terminated By '\\n' " +
                        ^ new

Your String, then, would look like this: 那么,您的字符串将如下所示:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM