19

我遇到了我一直在寻找的完全相同的问题,但这是我看到相同问题的唯一地方并且没有解决。

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

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

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

首先我选择一个连接管理器,右键单击,选择属性并单击表达式选项 第一步

然后在属性表达式生成器中选择连接字符串属性并单击表达式选项 在此处输入图像描述

最后,在 Expression Builder 对话框中没有变量选项,在我读过的每个页面中都说那里应该有一个 Variables 节点 在此处输入图像描述

我错过了什么吗?

4

3 回答 3

39

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

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

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

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

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

项目参数

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

代替那个包,我还创建了一个名为 SomeLocalVariable 的变量。

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

带有参数和局部变量的本地 CM 上的表达式构建器

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

项目 CM 和唯一可用的参数

有趣的是,您不能将表达式应用于 SSIS 包上下文之外的项目级连接管理器。在您打开 SSIS 包之前,您根本没有可用的编辑器。但是,一旦应用,项目中的所有包都将进行类似的配置。

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

于 2013-03-21T19:59:49.183 回答
9

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

初始平面文件源

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

转换为包连接

也许这会有所帮助。

于 2017-09-13T12:32:16.203 回答
0

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

  1. 在 Connection Managers 窗格中,右键单击 Sample Flat File Source Data,然后选择 Properties。
  2. 在“属性”窗口中,确保 PackagePath 以\Package.Connections开头。如果不是,在 Connection Managers 窗格中,右键单击 Sample Flat File Source Data,然后选择 Convert to Package Connection。 \Package.Connections最初显示在属性窗口中,尽管我还没有转换为包连接。阅读完这个帖子后,我右键单击 Sample Flat File Source Data 然后转换为包连接并能够完成课程。感谢您的回答!
于 2021-07-04T08:14:49.720 回答