SSIS变量'Variable'的表达式失败评估。表达式中有错误

时间:2013-08-09 12:08:17

标签: ssis

所以这里我有一个错误,我一直在我的SSIS包中,但我看不出该语句有什么问题。我甚至尝试了一个有效的项目中的另一个sql语句,它仍然会引发错误。

系统是VS 2005在XP机器上运行64位调试器。该项目除了其他功能之外还有一个脚本任务,然后是一个sql任务,脚本任务将月份值输出到一个变量(Dts.Variables(“monthName”)。Value = month),然后我用它在SQL中创建动态表名声明。我还没有得到excel表,因为我试图让sql任务阶段正常工作。

所以我在包级别有一个名为SQLTableCreate的变量,并且我将属性设置为:

  • 评估为Expression = true
  • Expression =“Create Table”+ @ [user :: monthName] +“(Column1 DATETIME,Column2 NVARCHAR(255),Column3 NVARCHAR(255),{{1 NVARCHAR(255),Column4 NVARCHAR(255),Column5 NVARCHAR(255),Column6 NVARCHAR(255),Column7 NVARCHAR(255),{{1 NVARCHAR(255),Column8 NVARCHAR(255))“

当我构建包时,我得到了:

  

保存包时发生非致命错误:   包中出错:在Variables集合中找不到变量“user :: monthName”。变量可能不存在于正确的范围内。   包错误:尝试解析表达式“”创建表“+ @ [user :: MonthName] +”(Column9 DATETIME,Column10 NVARCHAR(255),Column1 NVARCHAR(255 ),Column2 NVARCHAR(255),Column3 NVARCHAR(255),Column4 NVARCHAR(255),Column5 NVARCHAR(255),Column6 NVARCHAR(255 ),Column7 NVARCHAR(255),Column8 NVARCHAR(255))“   “失败并返回错误代码0xC00470A6。表达式无法解析。它可能包含无效元素或者可能格式不正确。可能还存在内存不足错误。包中的错误:变量”SQLTableCreate的表达式“评估失败。表达式中出现错误。

还有一个SQLTableCreate变量的默认SQL语句,它使用当前的Excel连接管理器表名。当我将动态语句放在属性的表达式部分中时,它会使用以下消息填充SQLTableCreate变量的value和valuetype属性:

  

变量“SQLTableCreate”的表达式评估失败。表达式中有错误。

1 个答案:

答案 0 :(得分:2)

正如错误所说

  

在Variables集合中找不到变量“user :: monthName”

SSIS中的内容区分大小写,而变量就是其中之一。表达你的表达

  • “创建表格”+ @ [User :: monthName] +“(Column1 DATETIME,Column2 NVARCHAR(255),Column3 NVARCHAR(255),Column4 NVARCHAR(255),Column5 NVARCHAR(255),Column6 NVARCHAR(255) ,Column7 NVARCHAR(255),Column8 NVARCHAR(255),Column9 NVARCHAR(255),Column10 NVARCHAR(255))“

另外,我希望这个表设计只是一个样本,而不是真实的。缺少列名和强大的数据类型是您在此阶段不需要承担的技术债务。