Сгенерируйте INSERT для типа «изображение» в MSSQL (Java) - PullRequest
0 голосов
/ 15 октября 2018

У меня есть база данных, где один из столбцов таблицы имеет тип «изображение».Я положил туда закодированный файл PDF.

Моя цель состоит в том, чтобы печатать в консоли Java-приложений INSERT STATEMENT со всеми данными из моей таблицы (чтобы сделать то же самое, что "Generate Script ..." из Management Studio).Тем не менее, поскольку мой столбец «изображение» является двоичным, я не знаю, как его кодировать, чтобы вставить в состояние состояния INSERT, чтобы этот элемент состояния был исполняемым.

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете использовать SQL-функцию convert для преобразования из двоичного (varbinary) в строковое (varchar), чтобы преобразовать ваши двоичные данные в строку и из строки (с ее шестнадцатеричным представлением).

Функция convert имеет стиль параметра, который указывает, начинается ли строка символом 0x или нет.В этих примерах я использую значение 2 (без символа 0x).

От двоичного к строковому:

select convert(varchar(max), my_image, 2) as my_string_representation
from my_table

От строкового к двоичному:

select convert(varbinary(max), my_string_representation, 2) as my_binary_image
from my_table

Итак, чтобы построить оператор вставки в виде простого текста, давайте предположим, что convert (varchar (max), my_image, 2) вернул строку «49747A696B ...» в определенной записи, затем вашоператор вставки для этой записи будет:

insert into my_table (my_id, my_image)
            values (25, convert(varbinary(max), '49747A696B...', 2))
...