У меня есть список сотрудников, которые я собираю в строку.Я хочу передать вывод этой строки в выражение 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] + ")"
Переменная устанавливается для оценки в качестве выражения.
Это тогда оценивается как:
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'
Я уверен, что это синтаксическая ошибка или ошибка настроек, но я еще не решил эту проблему.
Любая помощь была бы отличной.
Спасибо
Получить список пользователей:
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)) in (" + @[User::USERS] + ")"
Я бы хотел, чтобы @user::USER
оценили как'xxx','yyy','zzz'
и не думать о нем как о USER
столбце.