所以这里我有一个错误,我一直在我的SSIS包中,但我看不出该语句有什么问题。我甚至尝试了一个有效的项目中的另一个sql语句,它仍然会引发错误。
系统是VS 2005在XP机器上运行64位调试器。该项目除了其他功能之外还有一个脚本任务,然后是一个sql任务,脚本任务将月份值输出到一个变量(Dts.Variables(“monthName”)。Value = month),然后我用它在SQL中创建动态表名声明。我还没有得到excel表,因为我试图让sql任务阶段正常工作。
所以我在包级别有一个名为SQLTableCreate的变量,并且我将属性设置为:
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”的表达式评估失败。表达式中有错误。
答案 0 :(得分:2)
正如错误所说
在Variables集合中找不到变量“user :: monthName”
SSIS中的内容区分大小写,而变量就是其中之一。表达你的表达
另外,我希望这个表设计只是一个样本,而不是真实的。缺少列名和强大的数据类型是您在此阶段不需要承担的技术债务。