Converter STRING/IMAGEM para BASE64 no SQL SERVER

Para converter uma STRING para a base64 podemos criar uma função no SQL Server onde a função receberá o valor texto e retornará convertido para a base64.

Também podemos converter um campo imagem para a base64. Nesse caso primeiro é feita a conversão de IMAGE para VARBINARY e de VARBINARY para VARCHAR. Depois utilizando nossa função criada, convertemos para a base64.


SQL para criar a função:

USE [minhaBaseDeDados]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[ConverteParaBase64](@texto VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
 declare @bin varbinary(max), @Base64 varchar(max)
 set @bin = convert(varbinary(max),  @texto)
 set @Base64 = cast('' as xml).value('xs:base64Binary(sql:variable("@bin"))', 'varchar(max)')

    RETURN (select @Base64)
END

/*
select dbo.ConverteParaBase64('33110')
*/


Para converter um campo IMAGE, após criar a função, utilizamos ela passando o campo imagem dentro do SELECT: cast(cast( CAMPOIMAGEM as varbinary(max))as varchar(max))


(select dbo.ConverteParaBase64(
 (select cast(cast( GIMAGEM.IMAGEM as varbinary(max))as varchar(max))  from GIMAGEM where GIMAGEM.ID = p.IDIMAGEM)
)) as IMAGEM


Até mais.

Nenhum comentário:

Postar um comentário