My goal is to convert VARBINARY to VARCHAR. This is my code:
DECLARE @objectSidAsByteArray varbinary(max)
execute sp_executesql N'SELECT * FROM OPENQUERY("MyLinkedServer",
''SELECT objectGUID FROM ''''LDAP://bla1.bla2'''' WHERE name = ''''myName
mySurname'''' '')', N'@ VARBINARY(max) OUTPUT',
@objectSidAsByteArray OUTPUT
SELECT @objectSidAsByteArray
DECLARE @objectSIDAsString VARCHAR(max) = CONVERT (NVARCHAR(max),@objectSidAsByteArray)
SELECT @objectSIDAsString
Output:
0x8585EEB0CBFD34449644B2A44B886FCC
NULL
Event though @objectSidAsByteArray outputs the right value, there is something wrong with it. Its type seems to be ok (VARBINARY), isn't it? If I use the code below instead of @objectSidAsByteArray, the conversion works perfectly:
DECLARE @objectSID varbinary(max)
set @objectSID = 0x8585EEB0CBFD34449644B2A44B886FCC
CONVERT (NVARCHAR(max),@objectSID)
So what am I doing wrong with the @objectSidAsByteArray?