SSIS 变量“变量”的表达式评估失败。表达式中有错误
Posted
技术标签:
【中文标题】SSIS 变量“变量”的表达式评估失败。表达式中有错误【英文标题】:SSIS The expression for variable 'Variable' failed evaluation. There was an error in the expression 【发布时间】:2013-08-09 12:08:16 【问题描述】:所以在这里我们有一个错误,我一直在我的 SSIS 包中,但我看不出该语句有什么问题。我什至从一个有效的项目中尝试了另一个 sql 语句,它仍然会引发错误。
系统是 VS 2005,在 XP 机器上运行 64 位调试器。该项目有一个脚本任务,然后是一个 sql 任务,脚本任务将月份值输出到一个变量 (Dts.Variables("monthName").Value = month),然后我用它在 SQL 中创建动态表名陈述。由于我正在尝试使 sql 任务阶段正常工作,因此我还没有进入 excel 工作表位。
所以我在包级别有一个名为 SQLTableCreate 的变量,其中我将属性设置为:
评估为 Expression = true 表达式 = "创建表 "+ @[user::monthName]+"(Column1
DATETIME,Column2
NVARCHAR(255),Column3
NVARCHAR(255),Column4
NVARCHAR(255),@ 987654325@ NVARCHAR(255),Column6
NVARCHAR(255),Column7
NVARCHAR(255),Column8
NVARCHAR(255),Column9
NVARCHAR(255),Column10
NVARCHAR(255))"李>
当我构建包时,我得到:
保存包时发生非致命错误: 包错误:在变量集合中找不到变量“user::monthName”。该变量可能不存在于正确的范围内。 包错误:尝试解析表达式“”创建表“+@[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) ))” " 失败并返回错误代码 0xC00470A6。无法解析表达式。它可能包含无效元素或格式不正确。也可能存在内存不足错误。包错误:变量“SQLTableCreate”的表达式" 评估失败。表达式中有错误。
变量SQLTableCreate还有一个默认的SQL语句,它使用当前的excel连接管理器表名。当我将动态语句放在属性的表达式部分时,它会使用以下消息填充 SQLTableCreate 变量的 value 和 valuetype 属性:
变量“SQLTableCreate”的表达式评估失败。表达式中有错误。
【问题讨论】:
【参考方案1】:正如错误所说的那样
在变量集合中找不到变量“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))"另外,我希望这张桌子设计只是一个样本,而不是真实的。缺少列名和强数据类型是您现阶段不需要承担的技术债务。
【讨论】:
对不起,我注意到之前将变量名称从 MonthName 更改为 monthName,但它仍然不起作用。是的,设计只是我查询的一个示例。 命名空间,User也是区分大小写的 这就是我需要的修复,谢谢。 Sheesh 坐在这儿,呆滞的眼睛试图找出问题所在!没有意识到这是区分大小写的。以上是关于SSIS 变量“变量”的表达式评估失败。表达式中有错误的主要内容,如果未能解决你的问题,请参考以下文章