Pessoal estou fazer uma query na sped050 mas o campo xml_erp esta vindo pela metade, no sqlserver estou usando assim na select CONVERT(VARCHAR(800), CONVERT(VARBINARY(8000), XML_ERP))

pessoal estou fazer uma query na sped050 mas o campo xml_erp esta vindo pela metade, no sqlserver estou usando assim na select CONVERT(VARCHAR(800), CONVERT(VARBINARY(8000), XML_ERP)).

alguem aqui ja teve esse probelam e como corrigiu

Bom dia Eduardo!

Tudo bem?

Tente dessa forma:

((ISNULL(CAST(CAST(A.XML_ERP AS VARBINARY(8000)) AS VARCHAR(8000)),‘’)) AS XML

Nada, ainda esta cortando no final, não vem completo o XML.

Grato

@aeduardo.clemente eu respondi algo semelhante nesse post aqui:

Bom dia.

Acredito que dessa forma deve funcionar:
CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), XML_ERP))

Boa tarde.
Faz a quebra por blocos no SELECT e depois faz a junção

SELECT COALESCE(utl_raw.cast_to_varchar2(dbms_lob.substr(XML_ERP, 2000, 00001)), ’ ') JSON01,
COALESCE(utl_raw.cast_to_varchar2(dbms_lob.substr(XML_ERP, 2000, 02001)), ’ ') JSON02,
COALESCE(utl_raw.cast_to_varchar2(dbms_lob.substr(XML_ERP, 2000, 04001)), ’ ') JSON03,
COALESCE(utl_raw.cast_to_varchar2(dbms_lob.substr(XML_ERP, 2000, 06001)), ’ ') JSON04
FROM SPED050
WHERE R_E_C_N_O_ = 1

Espero que ajude