【问题标题】:SSIS Clear configuration variables values after package run / before savingSSIS在包运行后/保存前清除配置变量值
【发布时间】:2014-08-08 23:49:59
【问题描述】:

我有一些连接到 Oracle 数据库的 SSIS 包。连接参数存储在 SQL 数据库中,并使用包配置工具进行检索。

我的问题是 SSIS 使用配置字符串自动填充的变量在运行包后没有被清空。结果,变量的值在保存包时保存在源代码中。我不想将此变量值保存在我的源文件中。

知道如何防止这种情况发生吗?

谢谢!

【问题讨论】:

  • 您的变量是否设置为表达式?
  • 我的变量未设置为表达式。但是,如果我将其设置为表达式,问题仍然存在。
  • 设置为表达式放入占位符变量中,然后使用包配置设置变量。
  • 您能详细说明一下吗?我不确定我明白你的意思。

标签: sql variables ssis


【解决方案1】:

您可以尝试在包配置中设置变量。这样做的方法很简单。

首先转到包的最顶层并右键单击空白区域并选择包配置。选择添加添加。指定文件的位置和名称,然后单击下一步。

完成后,选择所需的变量并像这样设置值。

现在您没有将实际值存储在包中。只是有关如何找到它的信息。

编辑:我可能不清楚这一点。此过程将创建一个完全独立的文件,包将通过该文件来获取该表达式。这样您就不必将表达式或值存储在包本身中。它只知道在运行时去寻找该配置文件以获取任何其他数据。

编辑 2: 只有在通过 Visual Studio 在 BIDS 中执行包时,包配置才会被覆盖。发生这种情况的原因是因为包在运行前进行评估然后保存。当您使用 SQL 代理运行包时不会发生这种情况,因此不会将值或表达式存储在源代码中。我希望我已经为你澄清了这一点。

【讨论】:

  • 嗨,赞恩,感谢您的回答。我的问题是我的字符串仍然保存在我的包的源代码中。
  • 我以为您不想保存该值?
  • 这就是我的观点。当我保存我的包时,它会保留每个变量的最后一个值。我不希望这种情况发生
  • 正是这就是为什么您在包中放置一个占位符值(如 0 或其他内容)作为表达式的原因。然后创建这个包配置,它将用表达式和运行时替换 0 并传递适当的变量而不将其保存在包中。
  • 我明白你的意思,但在这种情况下,表达式也会保存在我的源代码中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多