Ограничение приоритета служб SSIS не работает из-за форматирования пути - PullRequest
1 голос
/ 22 мая 2019

Использование служб SSIS и MS-SQL Server 2012

У меня выполняется задача SQL:

SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?

Она никогда не возвращает ничего, кроме 0, поскольку имя файла служб SSIS выглядит следующим образом:

\\\\erp\\shares\\Save\\item_1168.txt

И имя файла в таблице выглядит следующим образом:

\\erp\shares\Save\item_1168.txt

Я не думаю, что хочу вставить имя файла в таблицу таким образом, так как / где я могу отформатировать, чтобы я могсделать спички, чтобы получить мое ограничение, которое зависит от этого, чтобы стрелять.

Спасибо!

enter image description here

enter image description here

Хорошо, если я запускаю этот запрос в SQL Manager, он работает.

SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE('\\\\erp\\shares\\Save\\item_1168.txt','\\','\')

Когда я помещаю эквивалент в редактор задач SQL для SQLStatement, он все равно возвращает 0

SELECT COUNT(id) as id FROM PORG_Files WHERE filename = REPLACE(?,'\\','\')

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Обходной путь - выражение

Попробуйте использовать выражение вместо передачи параметров:

В задаче «Выполнение SQL» на вкладке «Перейти к выражению» добавьте выражение для свойства SQLStatementSource следующим образом:

"SELECT COUNT(id) as id FROM PORG_Files WHERE filename = '" + @[User::CurrentFileName] + "'" 
1 голос
/ 22 мая 2019

Вы просто сохранили имя файла непосредственно в переменной?Если вместо этого вы сохраните имя файла как выражение строковой переменной, выходной формат будет таким, как вы описали.Результат 4 слешей (\) будет равен только 2, а 2 \ будет единичным.Это связано с тем, что в выражении SSIS должен быть экранирован прямой слеш.В поле «Выражение» переменной щелкните многоточие и введите текст в двойных кавычках, чтобы сделать это выражение, как в примере ниже.

“\\\\erp\\shares\\Save\\item_1168.txt”
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...