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
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
Eu faço assim e funciona.
faça uma query usando BeginSql e o campo em questão deve ser o último do SELECT que aí o próprio dbaccess faz a conversão pra vc
BeginSql Alias "XSPED"
SELECT NFE_ID , XML_ERP
FROM SPED050
WHERE DOC_CHV = %Exp:cChave% AND D_E_L_E_T_ = ' '
EndSql
então, meu TSS esta em outro banco, tipo o protheus esta no banco PRD2410 e o TSS no banco TSS2410, assim da erro ao fazer o beginsql