简体   繁体   中英

LOAD DATA INFILE and LINES TERMINATED error

When I load data from local infile, the data are truncated at the beginning of some rows, I tried lines terminated by '/r/n', by '/r' and by '/n' they only loaded one row in the table..

MyTable as one column, and MyFile.txt has only one column delimited by new line character at the end of each line..

Any suggestions are welcome !

## Here is an example of the data I have to load 
ENSG00000000003.10
ENSG00000000005.5
ENSG00000000419.8
ENSG00000000457.8
ENSG00000000460.12
ENSG00000000938.8
ENSG00000000971.11
ENSG00000001036.8




mysql> LOAD DATA LOCAL INFILE "C:/MyFile.txt" INTO TABLE MyTable;
Query OK, 57281 rows affected (0.73 sec)
Records: 57281  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT * FROM MyTable limit 5;
+---------------------+
| Ensembl             |
+---------------------+
 |ENSG00000000003.10
  |NSG00000000005.5
  |NSG00000000419.8
  |NSG00000000457.8
 |ENSG00000000460.12
+---------------------+

I had this problem too, so I ended up writing a mini-parser for a few "testLines" before I load each file.

public static void findTerminator(File file) throws FileNotFoundException {
    BufferedReader lines = new BufferedReader(new FileReader(file));
    int countLines = 0;
    int testLines = 15;
    int c;
    int[] terminators = { 0x0A, 0x0D, 0x0D0A }; //\n, \r, \r\n
    int[] counters = { 0, 0, 0 };
    try {
        while (((c = lines.read()) != -1) && (countLines <= testLines)) {
            for (int d = 0; d < terminators.length; d++) {
                if (c == terminators[d]) { 
                    counters[d]++; 
                    countLines++;
                }
            }
        }
    } 
    catch (IOException e) { e.printStackTrace(); }

    int max = 0;
    int maxindex = 0;
    for (int i = 0; i < counters.length; i++) {
        if (max < counters[i]) { 
            max = counters[i]; 
            maxindex = i; 
        }
    }
    terminator = (char)terminators[maxindex];
    System.out.println("Terminator: '" + terminators[maxindex] + "'");
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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