2014-12-01 4 views
2

У меня есть столбец, имеющий Image тип данных в MS-SQL Server 2012. Я хочу, чтобы получить его в виде строки в SQL Query ..Преобразование изображения DataType Для строки в SQL Server

Я попытался это:

SELECT 
'empphoto : '+ ISNULL(CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), empphoto)),'') 
from emppersonal where --some condition 

--empphoto Columns is of Image datatype 

вывод выглядит поврежденным (всего 4 символа).

выглядит результат:

empphoto : ÿØÿà 

enter image description here

Как может быть Image тип данных будет преобразован в строку в MS-SQL Server?

+1

Что вы на самом деле пытаетесь сделать? –

+0

Перед обновлением Любая строка в таблице, я должен сохранить данные этой строки вместе с именем столбца в другой таблице как одну строку –

ответ

5

Вы можете извлечь значение изображения как BASE64, запустив его через for xml path().

Try:

select 'empphoto : '+(select empphoto as '*' for xml path('')) 

Результат будет выглядеть примерно так.

empphoto : /9j/4AAQSkZJRgABAQAAAQABAAD/wAARCADw 

Для перехода в другую сторону, вы должны удалить первые 11 символов (empphoto :), отлитые в XML и извлечь значение как varbinary(max) ..

select cast(stuff(YourTextColumn, 1, 11, '') as xml).value('.', 'varbinary(max)') 
+0

ok, .. Если мне нужно вставить ее обратно в тот же столбец empphoto 'Image' datatype, то как чтобы вернуть его обратно –

+0

@ user3879765 Я обновил ответ. –

+0

Он выглядит работающим для преобразования 'varbinry (max)'. а не для преобразования типа данных «Image» –

Смежные вопросы