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

Использование служб 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(?,'\\','\')

Что именно представляет собой выражение, которое вы используете?

J Weezy 22.05.2019 20:31

У меня нет выражения.

Dizzy49 22.05.2019 23:33

@ Dizzy49 проблема решена?

Yahfoufi 24.05.2019 12:07
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
3
176
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

“\\\\erp\\shares\\Save\\item_1168.txt”

Задача находится внутри цикла ForEach. Переменная меняется по мере прохождения файлов. Просто мой оператор SQL не может соответствовать из-за дополнительных \s

Dizzy49 22.05.2019 23:31
Ответ принят как подходящий

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

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

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

"SELECT COUNT(id) as id FROM PORG_Files WHERE filename = '" + @[User::CurrentFileName] + "'" 

Нужно ли мне тогда редактировать SQLSourceType и SQLStatement в разделе General?

Dizzy49 22.05.2019 23:35

@Dizzy49 держи direct input

Hadi 22.05.2019 23:57

@ Dizzy49 при использовании выражения SQLStatement на вкладке «Общие» не имеет значения, поскольку оно изменяется во время выполнения.

Hadi 24.05.2019 23:42

@Dizzy49 что-нибудь новое?

Hadi 27.05.2019 02:55

В итоге это была комбинация вещей, но использование выражения было тем, что сделало это для меня :)

Dizzy49 27.05.2019 12:03

Другие вопросы по теме