DICA – MS SQL – Converter campo do Tipo Memo para Texto
DICA – MS SQL – Converter campo do Tipo Memo (Protheus®) para Texto
Converter campo do Tipo Memo para Texto
Caso você tenha a necessidade de fazer alguma consulta em uma base de dados do ERP Protheus® (MS SQL Server®) que ainda usa o tipo de dado “image” para gravar dados do tipo MEMO (Protheus), você terá que converter.
Obs. 1: O campo MEMO no Protheus é usado para gravar grandes quantidades de texto.
Para fazer essa conversão, eu conheço duas formas de fazer a conversão.
Uma forma para MS SQL Server® mais atual e uma outra para os mais antigos.
Mais atual:
SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), NOME_CAMPO)) FROM TABELA
Mais antigos:
CONVERT(VARCHAR(8000),CONVERT(BINARY(8000), NOME DO CAMPO)) FROM TABELA
Na imagem abaixo, temos um exemplo de um campo sem do Tipo Memo (image) sem conversão e com a conversão.
Perceba que sem converter, no resultado superior, o conteúdo exibido não significa nada. É somente uma cadeia de caracteres.
Após a conversão, o conteúdo do campo é exibido corretamente.
Obs. 2: A Totvs adotou como padrão o tipo varchar(MAX). Portanto, nas novas implantações o Protheus já cria o campo MEMO na base de dados MS SQL Server com o tipo varchar(MAX). Para instalações do Protheus mais antigas, quando a tabela que possue um campo MEMO é alterada, o Protheus trata de alterar o campo de image para varchar(MAX).
® Protheus é marca da TOTVS S.A.
® MS SQL Server é marca da Microsoft Corporation