我在SSIS(仅FTR)是相当新的。SSIS包XML源
我必须使用SSIS包将XML数据从DB2数据库导入到SQL Server中。 XML在CLOB/BLOB中(取决于表),据我所知,这不是由Microsoft DB2驱动程序支持的,所以我创建了一个Java桥接器,它从客户端获取ID并返回XML。桥由Visual Basic客户端访问(预编译,并且)作为SSIS中的脚本任务执行。性能并不是当前的重点(它是7XMLs/sec)。从网桥返回的XML存储在变量中,并且由于网桥接受一个ID /请求,因此请求情况位于Foreach循环容器中,该容器循环处理从SQL任务接收到的ID。
在foreach循环中,有存储XML的Visual Basic客户端,从XML导入数据并存储在FlatFile目标中的数据流,以及另一个Visual Basic任务,该任务在MsgBox中显示XML )。
数据流也有三个元素:XML源,派生列,平面文件目标。 XML Source从具有修正的XML Schema(XSD)的变量中获取XML数据,并发送解析的数据。 Derived列将ID作为新列添加到XML数据中,FlatFile Target应将其保存(如前所述,仅用于测试紫袍)。
当我启动这个包时,一切都很顺利。在Java桥中,我看到通信和XML发送回来,数据流也没有错误地返回,但是它会引发一些警告,并且没有行写入文件。第二个VB脚本正确显示XML。
该警告与0x80047076关于来自XML文件的未处理输出(因为我只是意图存储它的一部分)。
任何想法,为什么没有任何数据写入文件输出?
SQL服务器2005 SP1 的Java SE 1.6(U26我认为) DB2 V 9
警告如下所示:
警告:0x80047076在导入的XML,DTS.Pipeline:输出“sum”(36)和组件“XML Source”(1)的输出列“text”(965)随后不会在数据流任务中使用。删除这个未使用的输出列可以提高数据流任务的性能。
我试图将一个XML文件'hard coded'添加到变量中。我还使用XML Spy检查了XML与其XSD的对比。 XML是有效的,但没有数据写入平面文件。
当我尝试调试并将该变量添加到手表中时,我得到的XML稍有修改: “-s被反斜杠,并且在标准XML标题之后,新行字符也被打印为标准换行符:\ N实施例:?
< XML版本= \ “1.0 \” 编码= \ “UTF-8 \” > \ n <扩展属性> <客户值>甲< /客户为值> ...
但是,当在MsgBox中显示XML时,XML正常打印(\ n为换行符,\“),所以我的猜测是,这只是一个未处理的,直接从C/C++/C#字符串表示。
你能写一个整体警告字句?我知道他们可能非常冗长,但可能会有一些线索。 – cfrag