Sql SSIS变量和参数写入错误的访问字段
我正在使用控制流和数据流任务来记录在VisualStudioSSIS中从Excel数据源读取的行数。然后,数据被处理成好表和坏表,其中的行被计数,结果通过参数化SQL语句写入统计表 由于未知的原因,数据似乎写入了统计表中的错误字段,尽管重新创建了变量并显式设置了每个变量的列,但我无法修复或识别问题 设置了三个变量: 1.通过行计数任务从源Excel读取的行总数(约28964行)Sql SSIS变量和参数写入错误的访问字段,sql,visual-studio,ms-access,ssis,Sql,Visual Studio,Ms Access,Ssis,我正在使用控制流和数据流任务来记录在VisualStudioSSIS中从Excel数据源读取的行数。然后,数据被处理成好表和坏表,其中的行被计数,结果通过参数化SQL语句写入统计表 由于未知的原因,数据似乎写入了统计表中的错误字段,尽管重新创建了变量并显式设置了每个变量的列,但我无法修复或识别问题 设置了三个变量: 1.通过行计数任务从源Excel读取的行总数(约28964行) 处理后作为“良好”数据写入表的行(大多数源文件,约28540) 处理后作为“坏”数据写入表的行(约424) 然后,变量
这是Access参数化查询吗 我从来没有从SSIS运行过一个。我知道SSI在将变量中的值映射到查询参数时会很奇怪。您是否注意到变量的显示顺序(在变量到参数的映射中)与它们分配给参数的方式相同 看起来GoodRows值(28540)将被设置为P1,BadRows设置为P2,TotalRows设置为P3。这是变量在映射中出现的顺序 这正是我所见过的SSI所做的奇怪、令人愤怒的事情——尽管并不是特别针对Access SQL语句。SSI有时会按照变量在映射列表中的显示顺序将变量映射到参数,完全忽略您在参数名称列中指定的内容
尝试删除所有映射,并逐个映射变量,以便它们在映射表中以P1、P2、P3的顺序出现。我建议您为第四个参数创建第四个变量,而不是尝试在ExecuteSQL任务中进行数学运算 不要在“参数映射”选项卡的“参数名称”列中使用P1、P2和P3,请尝试使用它们从零开始的序号位置 在查询本身中,对参数使用问号:
...VALUES ("France", ?, ?, ?, ?)
换句话说,对于查询中首先使用的参数,使用0作为名称。下一个参数使用1,下一个参数使用2,依此类推
如果这不起作用,您可以使用变量生成一个字符串变量,该变量保存要执行的整个SQL字符串,并在ExecuteSQL任务中使用“SQL from variable”选项。请尝试将参数映射中的参数名替换为0、1和2。
只需按所需的列顺序使用数字。在我的SSIS项目中,这很好。是的,就是这样,很奇怪。非常感谢你的帮助。对于一个专业的程序来说,这是一个多么奇怪的怪癖啊。很高兴能解决它!我认为SSIS将这种行为归咎于数据提供商。我似乎记得它发生在一种类型的SQL Server连接(可能是OLEDB)上,但不发生在另一种类型的SQL Server上,尽管我记不起细节。谢谢,是的,它映射到了参数定义的顺序,而不是SQL代码。谢谢你的帮助。