Blog

Convertendo dados Binários para STR no SQL Server
Convertendo dados Binários para STR no SQL Server

Alguns administradores de RF já passaram por este problema. Veja como resolver.

02 de Outubro de 2013 às 23:30

Muitas vezes precisamos voltar dados BINARY para VARCHAR para comparações. Segue abaixo uma função que faz isto:

CREATE FUNCTION [dbo].[bin2str] 
(
	@bin VARBINARY(MAX)
)
RETURNS varchar(MAX)
AS
BEGIN
	
	DECLARE @nstring VARCHAR(MAX);
	DECLARE @Result varchar(255)
	SET @Result = ''
	SET @nstring = CAST(@bin AS VARCHAR);
	DECLARE @nchar nvarchar(1)
	DECLARE @position int

	SET @position = 1
	WHILE @position <= LEN(@nstring)
	BEGIN
		SET @nchar = SUBSTRING(@nstring, @position, 1)
		--Unicode & ASCII are the same from 1 to 255.
		--Only Unicode goes beyond 255
		--0 to 31 are non-printable characters
		IF UNICODE(@nchar) between 32 and 255
			SET @Result = @Result + @nchar
		SET @position = @position + 1
	END

	RETURN @Result

END