chints786 Ответов: 1

Задача выражения и выполнение задачи SQL


Привет,

У меня есть задача выражения, в которой есть следующий код:-

@[User::VendorFileName] = TOKEN(RIGHT( @[$Package::FilePath] , FINDSTRING(REVERSE(@[$Package::FilePath]), "\\", 1) -1),".",1)

Когда мы оцениваем приведенный выше код, он показывает выход, то есть V100

Ниже этого у меня есть задача Execute Sql в которой я передаю динамический оператор sql через выражение,

Код ниже:-

"SELECT
	p.partition_number AS PartitionNmber
FROM sys.indexes i
INNER JOIN sys.partitions p
	ON i.object_id=p.object_id
	AND i.index_id=p.index_id
INNER JOIN sys.partition_schemes ps
	ON ps.data_space_id = i.data_space_id
INNER JOIN sys.partition_functions pf
	ON pf.function_id = ps.function_id
LEFT OUTER JOIN sys.partition_range_values rv
	ON rv.function_id = pf.function_id
	AND rv.boundary_id = p.partition_number
WHERE i.object_id = object_id('" + @[User::StagingTableSchemaName]  + "." + @[User::StagingTableName] + "')
AND rv.value= '" + @[User::VendorFileName] + "'"


Когда я оцениваю вышеприведенный запрос он дает мне :-

SELECT
	p.partition_number AS PartitionNmber
FROM sys.indexes i
INNER JOIN sys.partitions p
	ON i.object_id=p.object_id
	AND i.index_id=p.index_id
INNER JOIN sys.partition_schemes ps
	ON ps.data_space_id = i.data_space_id
INNER JOIN sys.partition_functions pf
	ON pf.function_id = ps.function_id
LEFT OUTER JOIN sys.partition_range_values rv
	ON rv.function_id = pf.function_id
	AND rv.boundary_id = p.partition_number
WHERE i.object_id = object_id('STG.tablename')
AND rv.value= ''


Проблема в том, что он не заселяется rv.value значение и оно принимает пустое.

Может ли кто-нибудь подсказать, где я ошибаюсь?

Что я уже пробовал:

Я попытался использовать delayvalidation, установленный в true. но это не сработало

1 Ответов

Рейтинг:
1

#realJSOP

Ну, очевидно, что ваша задача выражения провалилась, так что я бы начал с этого. Попробуйте просто установить User::VendorFileName к некоторому значению, например "тест".

Если ваш оцененный запрос показывает rv='test', набор User::VendorFileName к значению @[$Package::FilePath] Если все в порядке, выйдите из середины своего выражения и посмотрите, что вернется.


chints786

Я сделал это тоже и установил переменную на некоторое значение, и да, она действительно заполнила rv.value=test.