4

我正在研究从配置表中读取详细信息并将详细信息传递给包的工作流程。有问题的包正在根据作为参数传递的文件名(从静态数据库表中读取)将 CSV 加载到数据库中。

我有骨头工作,我只是不明白如何正确配置目标包中的参数以正确使用它。

在我的调用过程中,我设置参数并执行包如下

....    
EXEC CATALOG.set_execution_parameter_value @ExecutionID
    ,@object_type = 30          -- (30 is package param!)
    ,@parameter_name = N'Parameter1'
    ,@parameter_value = @Parameter1

EXEC CATALOG.start_execution @ExecutionID

object_type 似乎有 3 个用于项目、包或执行参数的选项......

在我的目标包中,我将Parameter1定义为包参数(在包设计的参数选项卡中列出

我已经配置了“平面文件源”并且连接管理器属性-> 表达式,我将 ConnectionString 覆盖设置为 @[Package::Parameter1],这似乎不起作用。

谢谢。

.. 更新。从 execution_parameter_values 视图中,我突出显示了传递给包的内容:-

param_idexe_id|object_t|param_t|Parameter_name|parameter_value
3492|10184|20|String|Parameter1|
3493|10184|30|String|Parameter1|c:\abc.csv
3494|10184|30|String|CM.BLACKBEAST-II.StagingDB.ConnectionString|数据源=BLACKBEAST-II;初始目录=StagingDB;提供者=SQLNCLI11。 1;集成安全=SSPI;自动翻译=假;

4

1 回答 1

0

引用包级别变量将使用@[Namespace::VariableName]您显示的模式。

参数,无论是包还是项目,都将使用@[$Project::VariableName]和/或的语法@[$Package::VariableName]

因此,在 ConnectionString 上的表达式中,您应该使用@[$Package::Parameter1](并选择了一个更好的名称,但您已经知道了)。

于 2013-05-24T21:40:20.367 回答