Convertire VarBinary in VarChar

martedì 03 marzo 2009 - 12.36

volperubbia Profilo | Senior Member

Ciao a tutti,
avrei bisogno in una SELECT di convertire una colonna VARBINARY in un valore VARCHAR,
non mi importa che stringa esca, basta che siano valori diversi, anche perchè la colonna
VARBINARY è chiave. Sto usando questa funzione:

ALTER FUNCTION [dbo].[ufnProva]
(
@VALUE AS VARBINARY(255)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @OUTPUT AS VARCHAR(MAX)
DECLARE @hexstring AS CHAR(16)
DECLARE @i AS INT, @LENGTH AS INT, @tempint AS INT, @firstint AS INT, @secondint AS INT
SELECT @OUTPUT = '0x', @i = 1, @LENGTH = DATALENGTH(@VALUE), @hexstring = '0123456789abcdef'
WHILE (@i <= @LENGTH)
BEGIN
SET @tempint = CONVERT(INT, SUBSTRING(@VALUE, @i, 1))
SET @firstint = FLOOR(@tempint / 16)
SET @secondint = @tempint - (@firstint * 16)
SET @OUTPUT = @OUTPUT + SUBSTRING(@hexstring, @firstint+1, 1) + SUBSTRING(@hexstring, @secondint+1, 1)
SET @i = @i + 1
END
RETURN @OUTPUT
END

Funziona, ma è troppo pesante e lenta.
Sapete se c'è un modo più pulito?

Grazie per l'attenzione,
Davide
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5