2017-09-01 1 views
1

ich eine einfache Abfrage, die ich versuche, den hashbytes Wert in einer SSRS-Matrix angezeigt werden - Dies wirft einen Fehler, wenn die Matrixangezeigte Hashbytes Wert in SSRS Matrix

Meine Suche

select hashbytes('md5',Consultant_Code) as Consultant_Code, 
    hashbytes('md5',Surgeon1_Code) as Surgeon_Code 
    from TheatreOps 

Rendering Wenn Dies rendert in der Vorschauansicht #Error, wo ich den Wert zu sehen erwarte, hat jemand das vorher gehabt und könnte vielleicht eine Korrektur vorschlagen?

Antwort

2

Verwenden Sie die folgenden

SELECT 
'0x' + CONVERT(NVARCHAR(32),HashBytes('MD5', Consultant_Code),2) as Consultant_Code, 
'0x' + CONVERT(NVARCHAR(32),HashBytes('MD5', Surgeon_Code),2) as Surgeon_Code, 
FROM TheatreOps 
0

SSRS-Behandlung des zurückgegebenen Datentyps (Varbinary) könnte das Problem sein.

Versuchen:

select cast(hashbytes('md5',Consultant_Code) as varchar) as Consultant_Code, 
     cast(hashbytes('md5',Surgeon1_Code) as varchar) as Surgeon_Code 
from TheatreOps 
+0

Danke, aber ich erwarte Werte wie dieser 0x0021EA67FB5C6F30EAE9C2A95B6C196E nicht wie diese ÇÆî¡v † ‡ AI1 jimmy8ball

+0

Nach ein wenig Forschung habe ich festgestellt, dass mit der Funktion fn_varbintohexstr kann das Problem lösen, habe ich jetzt die gewünschte Ausgabe. Syntax davon: SUBSTRING (master.dbo.fn_varbintohexstr (HashBytes ('MD5', Consultant_Code)), 3, 32) – jimmy8ball

+0

'fn_varbintohexstr' ist keine dokumentierte Funktion, so weit ich weiß, also Vorsicht walten lassen, wenn Sie diesen Weg gehen . –