小编noo*_*Man的帖子

SSIS表达式选择变量作为列然后抛出错误

我有一个汇总到字符串中的工作人员列表。我想将此字符串的输出输入到SSIS表达式中,然后可以将其用作sql语句。

创建的变量是 @User::USER

问题是,它将变量转换为变量名称,然后查找该列。

SSIS表达式为:

"SELECT
    CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) as [User]
    ,user_num
FROM [dbo].[USER_B]
where CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) in (" +  @[User::USERS] + ")"
Run Code Online (Sandbox Code Playgroud)

变量设置为作为表达式求值。

然后评估为:

SELECT
    CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) as [User]
    ,user_num
FROM [dbo].[USER_B]
where CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) in (USERS)

@user::USERS = 'xxx','yyy','zzz'
Run Code Online (Sandbox Code Playgroud)

我确定这是语法错误或设置错误,但尚未解决。

任何帮助都会很棒。

谢谢

获取用户列表:

SELECT
    STRING_AGG(QUOTENAME(CONCAT(USER_GIVEN_NAME, ' ', USER_SURNAME),''''), ',') as USERS
FROM [Operations Stats].[dbo].[Team Members]

;

"SELECT
    CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) as [User]
    ,user_num
FROM [dbo].[USER_B]
where CONCAT(RTRIM(USER_GIVEN_NAME), ' ', RTRIM(USER_SURNAME)) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server expression ssis etl

5
推荐指数
1
解决办法
49
查看次数

标签 统计

etl ×1

expression ×1

sql ×1

sql-server ×1

ssis ×1