3

我有一些供应商数据,其中 SOH(ASCII 字符 1)作为字段分隔符,STX(ASCII 字符 2)作为记录分隔符。是否可以在不预处理文件并用更常见的字符替换这些字符的情况下使用 LOAD DATA INFILE 加载此数据?

4

5 回答 5

8

我得到了它。

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    CHARACTER SET UTF8 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY X'02'
    (col1, col2, col3);
于 2009-09-29T17:20:41.730 回答
1

你可以试试FIELDS TERMINATED BY _ascii 0x02。我不知道它是否适用于LOAD DATA INFILE,但它适用于SELECT(即,SELECT _ascii 0x61产生'a')。

于 2009-09-29T16:44:08.980 回答
1

如果您使用 mysqlimport,则 fields-terminated-by 和 lines-terminated-by 等中的十六进制值的格式为:

mysqlimport --local --user=username --password=secret --ignore-lines=4 --default-character-set=UTF8 --fields-terminated-by=0x01 --lines-terminated-by=0x02 --详细数据库名称要导入的文件

于 2010-07-13T08:57:50.580 回答
0

您可以尝试直接在字符串文字中发送 ascii 字符。如果您的连接没有分配字符集或编码,那么 mysql 可能会简单地将其作为有效字符串接受。您必须通过网络连接或将数据传送到 mysql 客户端来完成。我认为您无法在控制台上输入它。

于 2009-09-29T17:16:33.067 回答
0

由 X'01' 终止的字段

为我工作

于 2015-12-02T15:12:06.497 回答