DICA – MS SQL – Converter campo do Tipo Memo para Texto

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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *