Olá, mais uma dica para quem precisar trabalhar com XML no SQL. Muitas vezes se torna mais viável pois o desempenho e muito bom ! Primeiramente crie um arquivo xml como o nome "Teste.xml" com o conteúdo abaixo e salve no diretório c:\ do servidor sql: <?xml version='1.0' encoding='ISO-8859-1'?> <root> <row> <codigo_cliente><![CDATA[]]></codigo_cliente> <oab><![CDATA[mcsusi MG]]></oab> <codigo><![CDATA[41335579]]></codigo> <processo><![CDATA[814407]]></processo> <data><![CDATA[2010-10-18]]></data> </row> </root> No SQL Agora utilize a seguinte estrutura: Declare @doc xml Declare @hDoc int set @doc=(SELECT CONVERT(xml,bulkcolumn,2) FROM OPENROWSET (BULK 'C:\arquivoXML.xml' , SINGLE_BLOB) AS XMLDATA) exec sp_xml_preparedocument @hDoc OUTPUT, @doc SELECT * FROM OPENXML(@hDoc, '/root/row',2) with ( codigo_cliente varchar (200) 'codigo_cliente' ,oab varchar (200) 'oab' ,codigo varchar (200) 'codigo' ,processo varchar (200) 'processo' ,data datetime 'data' ) exec sp_xml_removedocument @hDoc Observação importante: o tag "[CDATA]" do xml é utilizada para conseguirmos importar carácteres especiais, sem a tag conseguimos importar porém podemos ter problemas com esse tipo de carácter. Qualquer dúvida envio comentários. até a próxima !
Categorias:Programação
Perfeito! Agora eu preciso que o ” path: bulkload xml ” seja dimanico, algo do tipo assim:
set @doc=(SELECT CONVERT(xml,bulkcolumn,2)
FROM
OPENROWSET (BULK @path_origem,
SINGLE_BLOB) AS XMLDATA)
Mas não deu certo.
Boa Tarde Daniela, primeiramente agradeço a visita e o comentário,
qual o erro esta sendo retornado pelo SQL ?
Teve alguma solução para isto ? Estou com o mesmo problema.
Bom dia,
agradeço o seu comentário.
Me envie o seu trecho de código para thiago.thamiel@inixcial.com.br e o que exatamente você precisa fazer.
valeu !