Connection Manager的表达式生成器未显示变量

时间:2013-03-21 18:17:36

标签: ssis

我准确地说same problem我一直在寻找,但这是我见过同样问题的唯一地方,并没有得到解决。

有谁知道问题可能是什么?

我在Visual Studio中检查过,我的SSIS版本是11.0.2100.60(不是试用版,不是测试版)。

编辑:这些是我正在采取的步骤和问题

首先,我选择一个连接管理器,右键单击,选择属性,然后单击“表达式”选项 step one

然后在Property Expression Builder中选择Connection String属性并单击Expression选项 enter image description here

最后,在Expression Builder对话框中没有变量选项,在我读过的每个页面中都说应该有一个Variables节点 enter image description here

我错过了什么吗?

3 个答案:

答案 0 :(得分:37)

SSIS 2012引入了项目级连接管理器的概念。我在MSDN论坛上的引用帖子上看到的是用户创建了一个项目级平面文件连接管理器,并且无法使用局部变量对其进行配置。假设这是问题,我的答案如下。

SSIS项目通常不止一个包。为了简化生活,SSIS团队现在允许跨项目共享公共资源,连接管理器就是这些资源之一。

逻辑上,如果项目在项目中共享,那么在一个文件中存在的内容如何配置该资源?该配置更改仅在Package1执行时有效。当Package2触发时,除非将相同的变量和相同的表达式应用于共享资源,否则您将遇到不同的结果。这将是一场维护噩梦,如果您没有强大的配置实践,您可能已经体验过这种噩梦。

如果我在项目级别创建平面文件连接管理器,我只能在项目级别引用的变量。除了项目级别没有变量。相反,它们被称为参数

为此,我创建了一个名为SomeProjectParameter

的参数

project parameter

然后我创建了一个包Package1.dtsx,并添加了2个平面文件连接管理器:FlatFileConnectionManagerLocal和FlatFileConnectionManagerProject

相反,我还创建了一个名为SomeLocalVariable的变量。

此屏幕截图显示我将表达式应用于FlatFileConnectionManagerLocal的ConnectionString属性。在那里,您可以看到包变量SomeLocalVariableSomeProjectParameter

都可用

expression builder on local CM with parameter and local variable

现在,如果我尝试将表达式应用于项目的连接管理器,您将只能使用项目参数。

project CM and only parameters available

值得注意的是,您无法将表达式应用于SSIS包上下文之外的项目级别的Connection Manager。在您拥有一个开放的SSIS包之前,根本没有可用的编辑器。但是,一旦应用, all 项目中的包将被类似地配置。

我想是IDE的怪癖。此外,请不要对这些屏幕截图中缺少颜色感到震惊,我正在使用2012版SSDT。

答案 1 :(得分:4)

我有同样的问题,因为平面文件源被设置为项目源,所以我不得不将其转换为包连接。

Initial flat file source

右键单击源并选择转换为包连接

Convert to package connection

也许这会有所帮助。

答案 2 :(得分:0)

Microsoft SSIS 教程中有这些令人困惑的陈述:

  1. 在“连接管理器”窗格中,右键单击“示例平面文件源数据”,然后选择“属性”。
  2. 在“属性”窗口中,确保 PackagePath 以 \Package.Connections 开头。 如果没有,在 “连接管理器”窗格中,右键单击“示例平面文件源数据”,然后选择“转换为包连接”。 \Package.Connections 最初显示在属性窗口中,尽管我还没有转换为 Package Connection。 阅读此线程后,我右键单击“示例平面文件源数据”,然后单击“转换为包连接”并能够完成本课程。感谢您的回答!