如何使用参数

时间:2018-05-15 19:39:56

标签: ssis

TL; DR:当程序包运行时,数据流任务“正常”,但在数据流源助手中单击“预览”时,我无法查看查询。

我的工作理论是,在预览时,Source Assistant无法获取参数的值。我试图通过使用(迭代)“参数”和“变量”来解决这个问题,但没有成功。下面显示的示例使用“参数”。

在SSIS数据流任务中,我有一个带有“SQL Command”的Source Assistant作为其数据访问模式。

SELECT h.Campus,
    h.StudentName,
    h.StudentId,
    h.EntryDate
FROM dbo.RwsBaseEnrollmentHistory h
WHERE h.Campus = ?;

问号表示我在“参数”中定义的参数。

Parameter is defined here

在OLE DB源代码编辑器中,我确保将变量映射到参数。

The parameter is mapped to the variable here.

当我点击“预览”时出现错误:

Error displaying preview

有问题的数据无法共享,但相信我说当我运行包时,查询按预期工作。这是无法预览我希望能够修复的查询。

我需要做什么才能在不必对参数值进行硬编码的情况下预览查询?

1 个答案:

答案 0 :(得分:0)

我偶然发现了一个可能的答案。它似乎工作到目前为止,我无法打破它。如果有更好的方法,我会喜欢反馈。

这是我的决议:

  1. 创建一个变量来保存所需的查询(如上例所示)。在此示例中,我将其命名为EnrollmentHistory
  2. Create a new variable to hold the query.

    1. 在“表达式”中,单击[...]按钮并粘贴查询。请确保查询周围有双引号。
    2. "SELECT 
         h.Campus,  
         h.StudentName,
         h.StudentId,
         h.EntryDate 
        FROM dbo.RwsBaseEnrollmentHistory h 
        WHERE h.Campus = '" + @ [User::Campus] + "'"
      

      按“评估表达式”按钮,然后按OK。

      1. 返回源助手并选择“来自变量的SQL命令”作为数据访问模式,并选择刚刚定义的变量(在本例中为EnrollmentHistory)作为变量名称。您将看到参数在变量值中正确解析。
      2. enter image description here