Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Image DataType To String in SQL Server

I have a Column having Image datatype in MS-SQL SERVER 2012. I want to get it as string in SQL Query..

I have Tried This:

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

--empphoto Columns is of Image datatype

output looks corrupted (Just 4 characters).

OutPut looks like:

empphoto : ÿØÿà

enter image description here

How can be an Image datatype be converted to string in MS-SQL Server?

like image 805
Kartikeya Khosla Avatar asked Dec 20 '22 09:12

Kartikeya Khosla


1 Answers

You can extract the image value as BASE64 by running it through for xml path().

Try:

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

Result will look something like this.

empphoto : /9j/4AAQSkZJRgABAQAAAQABAAD/wAARCADw

To go the other way you have to remove the first 11 characters (empphoto :), cast to XML and extract the value as varbinary(max)..

select cast(stuff(YourTextColumn, 1, 11, '') as xml).value('.', 'varbinary(max)')
like image 178
Mikael Eriksson Avatar answered Jan 12 '23 16:01

Mikael Eriksson