SSIS中的错误 - 解析查询时无法提取参数,语法错误

时间:2017-03-14 09:43:25

标签: sql sql-server xml sql-server-2008 ssis

我正在构建一个SSIS包来选择一些数据作为XML并将其导出到一个平面文件。我通过for循环运行它,我有一个sql execute任务来选择表中的所有记录,然后遍历每个记录以创建一个XML文件。

这是我试图在OLE DB源代码编辑器中作为数据流的一部分执行的SQL语句。 select位于另一个SELECT(...)AS XML_TEXT中,以使输出成为文本

SELECT 
(SELECT SalesCode, ProductName, ManufacturingSite, Country, Language, Status, RevisionDate, ArchiveDate, PFFileName, XMLFileName, Version
FROM ir_cp_connect_data
WHERE (id = ?)
FOR XML RAW ('Data'), ROOT ('Sales'), ELEMENTS XSINIL)
AS XML_TEXT

我试图直接将其作为SQL命令输入,也可以在变量中输入。当我直接将其作为命令输入时,它会错误地说它无法解析查询,出现语法错误,权限违规或其他非特定错误。

当我在数据访问模式下将其切换为变量时,会出现错误,并显示长错误消息

  

SSIS错误代码DTS_E_OLEDBERROR。发生OLD DB错误,错误代码0x80004005。 OLE DB记录可用。

然后再继续列出语法错误,权限违规或其他非特定错误。'

如果我在SQL Management Studio中运行select语句,它会起作用,尽管我将id = ?替换为id = @id并声明@id in并为其赋值。

我正在使用VS2008和SQL Server 2008R2。

我觉得我错过了一些非常明显的东西,但我不能把手指放在上面。如果我删除打开的SELECT(..)AS XML_TEXT,查询解析正常,但输出是System.Byte [],这对平面文件没有好处。

非常感谢任何帮助。

0 个答案:

没有答案