Pasar XML a Tabla

06/10/2009 - 19:43 por Diego Mazzitelli | Informe spam
Hola a todos!
Estoy intentando pasar un xml a una tabla y me tira el siguiente
error:

Msg 225, Level 16, State 12, Procedure ActArticulos, Line 5
The parameters supplied for the function "OpenXML" are not valid.


El codigo mio es el siguiente:

create procedure ActArticulos
@xml varchar(max)
as
BEGIN
select *
into #Articulos
from openxml(@xml,'/ROOT/Articulos')
with ( [idArticulo] [varchar](13) ,
[descripcion] [varchar](30) ,
[suspendido] [numeric](1, 0),
[unidadVenta] [int] ,
[idLinea] [varchar](3) ,
[idRubro] [varchar](3) )

END
GO

Alguien me puede decir donde esta el error? o como hacer para
convertir un xml q me viene en la variable a una tabla

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
06/10/2009 - 22:23 | Informe spam
Hola Diego,

On 6 okt, 19:43, Diego Mazzitelli wrote:
Hola a todos!
Estoy intentando pasar un xml a una tabla y me tira el siguiente
error:

Msg 225, Level 16, State 12, Procedure ActArticulos, Line 5
The parameters supplied for the function "OpenXML" are not valid.

El codigo mio es el siguiente:

create procedure ActArticulos
@xml varchar(max)
as
BEGIN
    select *
    into #Articulos
    from openxml(@xml,'/ROOT/Articulos')
        with (  [idArticulo] [varchar](13)  ,
                [descripcion] [varchar](30) ,
                [suspendido] [numeric](1, 0),
                [unidadVenta] [int] ,
                [idLinea] [varchar](3) ,
                [idRubro] [varchar](3) )

END
GO

Alguien me puede decir donde esta el error? o como hacer para
convertir un xml q me viene en la variable a una tabla



Y por qué no buscas en la ayuda por algo como 'OPENXML'?

Al openxml le tienes que pasar un número de referencia
a un documento xml 'parsed' (en buen castellano??
'parsiculado'?? :) ) y no el documento mismo.

declare @ref int
exec sp_xml_preparedocument @ref OUT, @xml

select *
from openxml(@ref,'/ROOT/Articulos')
with ( [idArticulo] [varchar](13) ,
[descripcion] [varchar](30) ,
[suspendido] [numeric](1, 0),
[unidadVenta] [int] ,
[idLinea] [varchar](3) ,
[idRubro] [varchar](3) )

exec sp_xml_removedocument @ref

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Alejandro Mesa
07/10/2009 - 17:26 | Informe spam
Diego,

Ademas de lo dicho por Carlos, te sugiero que si usas SQL Server 2005 /
2008, entonces preferible que uses el tipo de data xml para pasar el
documento como parametro al sp.

Puedes usar las funciones Nodes() y Value() para desmantelar el documento.

AMB


"Diego Mazzitelli" wrote:

Hola a todos!
Estoy intentando pasar un xml a una tabla y me tira el siguiente
error:

Msg 225, Level 16, State 12, Procedure ActArticulos, Line 5
The parameters supplied for the function "OpenXML" are not valid.


El codigo mio es el siguiente:

create procedure ActArticulos
@xml varchar(max)
as
BEGIN
select *
into #Articulos
from openxml(@xml,'/ROOT/Articulos')
with ( [idArticulo] [varchar](13) ,
[descripcion] [varchar](30) ,
[suspendido] [numeric](1, 0),
[unidadVenta] [int] ,
[idLinea] [varchar](3) ,
[idRubro] [varchar](3) )

END
GO

Alguien me puede decir donde esta el error? o como hacer para
convertir un xml q me viene en la variable a una tabla


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida