Возвращаемое значение SSIS Хранимой процедуры в рамках Команды OLE DB

Вы пытаетесь $set и $pull на одном и том же поле в одном обновлении - конфликт двух операций; поэтому нет, вы не можете использовать эти операторы таким образом.

Вы можете легко разделить это на две части:

SMUProfiles.update(
  { owner: this.userId },
  { $set: { 'classrooms.owner': classids },
);
SMUProfiles.update(
  { owner: this.userId },
  { $pull: { 'classrooms.students': classroom_id },
);

См., Например. этот ответ

8
задан Eray Balkanli 30 May 2016 в 18:01
поделиться

4 ответа

Путем я нашел, что мог сделать это, которое было на самом деле довольно просто:

exec ? = dbo.StoredProc @param = ?, @param2 = ?

и затем @RETURN_VALUE появится на Доступных Целевых столбцах

12
ответ дан 5 December 2019 в 08:55
поделиться

Не используйте имена переменной в свойстве SqlCommand, просто вопросительные знаки и или "ПРОИЗВОДИТЕ" маркировку для выходных параметров.

Прием для захвата значения выходного параметра должен поместить полученное преобразование столбца в конвейер перед Командой OLE DB для представления столбца (отображенный на переменной SSIS) для получения результата процедуры.

См. Столбцы Преобразования И Идентификационных данных Команды OLEDB для хорошего обзора со снимками экрана того, как сделать это. Также посмотрите Целевой Адаптер Мусора для Места назначения Мусора, используемого в первой ссылке. Это - удобный инструмент для имения в наличии для отладки вещей как это.

6
ответ дан 5 December 2019 в 08:55
поделиться

Если хранимая процедура возвращает набор результатов, то необходимо получить ее:

DECLARE @results TABLE (
    [ID] INT NOT NULL
)

INSERT @results ([ID])
EXEC dbo.uspInsertContactAddress @Address = ?, @ContactID = ?, @DeliveryMethodId = ?, @ID = ? output, @Version = ? output

SELECT * FROM @results 

Примечание: Я использовал Табличную переменную. Вы, возможно, должны были бы использовать временную таблицу в зависимости от своей версии SQL Server.

1
ответ дан 5 December 2019 в 08:55
поделиться

Я всегда использовал параметр, отображающийся в Выполнить Задаче SQL с большим успехом. SQL-оператор является "ДОЛЖНОСТНЫМ ЛИЦОМ nameofstoredproc?? ВЫВОД", с вопросительными знаками, указывающими местоположение параметров и ВЫВОДА, если параметр является выводом.

Вы указываете параметры в отображении с соответствующим именем переменной, направление (вход, вывод, ReturnValue) и тип данных. Так как Ваш сохраненный proc возвращает данные, которые Вы хотите через набор результатов, затем указываете направление для переменных для сбора идентификатора и версии как ReturnValue. Это должно работать просто великолепно для Вас.

0
ответ дан 5 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: