인쇄 할 수없는 문자 구분 기호와 함께 MySQL로드 데이터를 사용합니다
-
18-09-2019 - |
문제
나는 Field Delimiter로 SOH (ASCII 문자 1)를 가지고 있으며 레코드 구분 기호로서 STX (ASCII 문자 2)를 가진 공급 업체 데이터가 있습니다. 파일을 사전 처리하지 않고 해당 문자를 더 일반적인 것으로 바꾸지 않고이 데이터를로드 데이터로로드 할 수 있습니까?
해결책
알겠어요.
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);
다른 팁
당신은 시도 할 수 있습니다 FIELDS TERMINATED BY _ascii 0x02
. 그것이 작동하는지 모르겠습니다 LOAD DATA INFILE
, 그러나 그것은 작동합니다 SELECT
(즉, SELECT _ascii 0x61
'a').
MySQLimport를 사용하는 경우 필드 종료 및 라인이 종결 된 등의 16 진 값에 대한 형식을 다음과 같습니다.
mysqlimport-local --user = username-password = secret-ignore-lines = 4--default-character-set = utf8-fields-Terninated-by = 0x01--lines-terminated-by = 0x02- Verbose DatabaseName TheFileToimport
문자열 리터럴 내부에 ascii char를 직접 보낼 수 있습니다. 연결에 숯이 있거나 인코딩이 할당되지 않은 경우 MySQL이 유효한 문자열로 받아 들일 수 있습니다. 네트워크 연결 또는 MySQL 클라이언트에 데이터를 배관하여 수행해야합니다. 나는 당신이 콘솔에 그것을 입력 할 수있을 것이라고 생각하지 않습니다.
x'01에 의해 종료 된 필드
나를 위해 일합니다