variable uso source query sql-server ssis package dts

sql server - uso - SSIS XMLSource solo ve valores nulos en variable XML



uso de variables en ssis (2)

Descubrí una forma de poblar los valores ... Lo publicaré aquí sin darme puntos, en caso de que alguien más encuentre el mismo problema. Esto es solo un "cómo solucionarlo", pero le doy crédito a cualquiera que pueda explicar los "por qué más".

Esencialmente, el XML debe estar envuelto en otro nodo raíz:

<?xml version="1.0" encoding="utf-8"?> <datarows> <words> <word>bacon</word> <word>roasted</word> <word>pork</word> <word>edamame</word> </words> </datarows>

Aunque el XML original que utilicé era válido, SSIS quería que estuviera envuelto en un nodo raíz adicional, que denominé datarows . Una vez que hice eso, el paquete reconoció los valores de las palabras y se completó con éxito.

El esquema asociado:

<?xml version="1.0"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="datarows"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="words"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="word" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

Tengo una tarea de flujo de datos con un XMLSource que hace referencia a una variable XML. La tarea DataFlow reconoce que hay x número de filas en la variable, pero solo ve valores nulos en cada fila:

El valor de la variable xml:

<?xml version="1.0" encoding="utf-8"?> <words> <word>butter</word> <word>crispy</word> </words>

Utilicé esta fuente para generar el XSD dentro del Editor de XMLSource; aquí está el XSD autogenerado:

<?xml version="1.0"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="words"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="word" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

El paquete compila, ejecuta y procesa todas las filas en mi XML, pero solo ve nulos en lugar de las cadenas de texto reales ... Aquí hay una foto del DataViewer que muestra 2 filas después de leer la variable XML:


Yo también tuve el mismo problema, Intentaba consumir un servicio web e importar el xml de salida en una tabla en sql 2008.

El problema es realmente con el espacio de nombres que se genera en el xml de salida por el servicio web. El truco que he usado era
1. Almacenado el resultado del servicio web en una variable de nivel de paquete
2. Agregue una ''tarea de script'' para reemplazar el espacio de nombre no deseado.
3. Luego usó ''XMl Source Task'' para importar los datos en una tabla.

-Kris ...