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 などの 16 進値の形式は次のとおりです。

mysqlimport --local --user=username --password=secret --ignore-lines=4 --default-character-set=UTF8 --fields-terminated-by=0x01 --lines-terminated-by=0x02 -- verbose databasename thefile to import

于 2010-07-13T08:57:50.580 に答える
0

文字列リテラル内で ascii char を直接送信してみることができます。接続に文字セットまたはエンコーディングが割り当てられていない場合、mysql は単純にそれを有効な文字列として受け入れる場合があります。ネットワーク接続を介して行うか、mysql クライアントにデータをパイプする必要があります。コンソールでそれを入力できるとは思いません。

于 2009-09-29T17:16:33.067 に答える
0

X'01' で終了するフィールド

私のために働く

于 2015-12-02T15:12:06.497 に答える