Мне нужно импортировать на сервер mysql (5.5 )набор больших данных, имеющих одно поле в виде большого двоичного объекта. Следуя примерам SELECT INTO OUTFILE и LOAD DATA INFILE, он работает [почти] нормально. Однако у меня есть проблема :сгенерированные данные в файле для BLOB имеют фактически двоичное представление. Сгенерированный файл выглядит следующим образом: (3-й столбец представляет собой BLOB-файл):
1,1,"4Vÿ" 2,1,"ª»Ì" 3,1,"Ýîÿ" 4,1,"\"3"
и импорт отлично работает для этого случая со следующим оператором sql:
LOAD DATA INFILE 'C:/temp/mysql/mysqldump.1.txt' INTO TABLE `test_table` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ;
Моя проблема в том, что текст генерируется случайно. Если появляются кавычки или новая строка -или что-то еще, мне нужно будет выполнить экранирование вручную (, то есть заменить их обратной косой чертой -char ), и я хотел бы пропустить этот шаг.
Итак, мой вопрос: :есть ли способ импортировать текстовый файл в следующем формате (BLOB, хранящийся как шестнадцатеричный):
1, 1, 0x123456FF 2, 1, 0xaabbcc 3, 1, 0xddeeff 4, 1, 0x112233
с одним оператором mysql?
Обновление:Забыл упомянуть, что -попытался импортировать текстовый файл в нужном формате напрямую с помощью инструкции LOAD DATA INFILE, и в результате фактически сохранился текст «0x123456FF» в BLOB-файле таблицы.