SSIS包XML源

时间:2011-11-30 10:48:09

标签: sql-server xml ssis

我是SSIS的新人(只是FTR)。

我必须使用SSIS包将XML数据从DB2数据库导入SQL Server。 XML在CLOB / BLOB中(取决于表),据我所知,它不受Microsoft DB2驱动程序的支持,因此我创建了一个Java桥,它从客户端获取ID并返回XML。该桥由Visual Basic客户端访问(预编译,并)作为SSIS中的脚本任务执行。性能目前不是一个重要的优先级(它是7XML /秒)。从桥返回的XML存储在变量中,并且由于桥接受一个I​​D /请求,因此请求scenar位于Foreach循环容器中,循环访问从SQL任务接收的ID。

在foreach循环中,有一个存储XML的Visual Basic客户端,一个用于从XML导入数据并存储在FlatFile目标中的数据流,另一个Visual Basic任务,用于显示MsgBox中的XML()

数据流还有三个元素:XML Source,Derived列,Flat file destination。 XML Source使用修复XML架构(XSD)从变量中获取XML数据,并发送解析​​后的数据。 Derived列将ID作为新列添加到XML数据中,FlatFile Target应该保存它(如前所述,仅用于测试purpouses)。

当我开始这个包时,一切顺利。在Java桥接器中,我看到了通信和发回的XML,数据流也返回而没有错误,但它会抛出一些警告,并且没有行文件写入文件。第二个VB脚本正确显示XML。

警告的编号为0x80047076,表示XML文件中未处理的输出(因为我只想存储其中的一部分)。

任何想法,为什么没有任何数据写入文件输出?

SQL server 2005 sp1 Java SE 1.6(我认为) DB2 v.9

警告如下:

  

警告:从XML导入0x80047076,DTS.Pipeline:输出“sum”(36)和组件“XML Source”(1)的输出列“text”(965)随后未在数据流任务中使用。删除此未使用的输出列可以提高数据流任务性能。

我尝试将XML文件“硬编码”添加到变量中。我还使用XML Spy检查了XML对XSD的影响。 XML有效,但没有数据写入平面文件。

当我尝试调试并将变量添加到监视器中时,我会稍微修改XML: “-s被反斜杠,在标准XML标题之后,新行字符也被打印为标准换行符:\ n。示例:

  

<?xml version = \“1.0 \”encoding = \“UTF-8 \”?> \ n< extended-attributes>< customer-value> A< / customer-value> ...

然而,当在MsgBox中显示XML时,XML正常打印(\ n作为换行符,\“作为”),所以我的猜测是,这只是一个未处理的,直接打印来自C / C ++ / C#字符串表示。

1 个答案:

答案 0 :(得分:0)

您是否尝试在传输到平面文件目标之前可视化数据?

根据您的描述,听起来好像数据没有达到它。

要向其添加数据查看器,请按以下链接中的步骤操作:http://msdn.microsoft.com/en-us/library/ms140318.aspx