Problemas al generar un XML en SQL Server
Publicado por izubal (6 intervenciones) el 08/10/2008 17:44:29
Hola,
Tengo un problema en SQL Server 2005.
Quiero pasar como parámetro una lista o array a una función y he seleccionado la opción de XML para ello. Pero al generar el XML (quiero que los datos se obtengan mediante parámetros) me da un error.
Error: "Los tipos de datos xml y varchar son incompatibles con el operador add."
Puede que sea una tonteria pero no tengo experiencia en XML y os agradecería que me ayudaseis.
Os explico mediante código:
1. Código que genera el XML:
set @datosmensaje = '<Orders>'
(entro en un fetch)
set @datosmensaje = @datosmensaje + '<Order DIRDPD=' + @Lista + ' MCK=' + @iClave + '></Order>'
(finalizo el fetch)
set @datosmensaje=@datosmensaje + '</Orders>'
--y llamo a la función pasandole el xml como función.
dbo.FORMATEAR_76(@sUsuario_IN,'1','1',@datosmensaje
2. Código que lee y utiliza el XML:
DECLARE @tablaLista TABLE (DIRDPD varchar(50), MCK varchar(8))
DECLARE cLista CURSOR FOR
SELECT DIRDPD,MCK
FROM @tablaLista
INSERT INTO @tablaLista (DIRDPD,MCK)
SELECT DIRDPD = T.Item.value('@DIRDPD', 'nchar(50)'),
MCK = T.Item.value('@MCK', 'nchar(50)')
FROM @Lista.nodes('Orders/Order') AS T(Item)
(y recorro esta tabla)
gracias de antemano.
Un saludo.
Tengo un problema en SQL Server 2005.
Quiero pasar como parámetro una lista o array a una función y he seleccionado la opción de XML para ello. Pero al generar el XML (quiero que los datos se obtengan mediante parámetros) me da un error.
Error: "Los tipos de datos xml y varchar son incompatibles con el operador add."
Puede que sea una tonteria pero no tengo experiencia en XML y os agradecería que me ayudaseis.
Os explico mediante código:
1. Código que genera el XML:
set @datosmensaje = '<Orders>'
(entro en un fetch)
set @datosmensaje = @datosmensaje + '<Order DIRDPD=' + @Lista + ' MCK=' + @iClave + '></Order>'
(finalizo el fetch)
set @datosmensaje=@datosmensaje + '</Orders>'
--y llamo a la función pasandole el xml como función.
dbo.FORMATEAR_76(@sUsuario_IN,'1','1',@datosmensaje
2. Código que lee y utiliza el XML:
DECLARE @tablaLista TABLE (DIRDPD varchar(50), MCK varchar(8))
DECLARE cLista CURSOR FOR
SELECT DIRDPD,MCK
FROM @tablaLista
INSERT INTO @tablaLista (DIRDPD,MCK)
SELECT DIRDPD = T.Item.value('@DIRDPD', 'nchar(50)'),
MCK = T.Item.value('@MCK', 'nchar(50)')
FROM @Lista.nodes('Orders/Order') AS T(Item)
(y recorro esta tabla)
gracias de antemano.
Un saludo.
Valora esta pregunta


0