Использование задачи SQL SSIS Task Exec с sp_send_mail - PullRequest
1 голос
/ 01 февраля 2012

У меня есть пакет служб SSIS, который проходит через несколько человек, затем прикрепляет набор ссылок к отчетам в виде вложений.

Все это прекрасно работает с задачей «Отправить почту», пока я не достигну предела в 4000 символов :(

Итак, я пытаюсь заставить это работать с задачей «Выполнение SQL», используя sp_send_mail

Сначала я пытаюсь что-то простое, но не могу заставить его работать

Параметр:User :: strPersonName Направление: Тип входных данных: VarChar Размер: -1

Оператор SQL =

DECLARE @bodytext AS VARCHAR(200)

SET @bodytext = 'Good Morning' + ?

EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'Shoop',
    @recipients = 'moonbase@hatstand.com',
    @subject = '1', 
    @body = @bodytext

Я получаю набор результатов, неправильно настроив общую ошибку

Есть идеи?: (

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Результирующий набор не требуется, но если вы убедитесь, что он правильно установлен на вкладке Общие в задаче SQL.Насколько я понимаю, вы просто передаете данные параметров и ничего не возвращаете, поэтому я думаю, что вы установили Single Row вместо None .

0 голосов
/ 01 февраля 2012

Вместо использования sp_send_mail вы все равно можете использовать задачу отправки почты из служб SSIS. Предел в 4000 символов, о котором вы, я полагаю, говорите, при заполнении вашего сообщения, находится в выражении, а не в самой переменной. Если вы используете переменную MessageSourceType в задаче отправки почты, вы можете использовать задачу сценария для построения тела сообщения (что позволяет создать строку длиной более 4000 символов).

Изменить: Поскольку проблема связана с вашими вложениями, я вижу одну вещь, которая может быть проблемой с SQL для вашей задачи «Выполнение SQL», в соответствии с http://technet.microsoft.com/en-us/library/ms140355.aspx, вы должны использовать «?» в качестве маркера параметра для соединений ADO и «@» для ADO.NET, но кажется, что вы используете оба.

В качестве другой альтернативы, вот блог о том, как использовать задачу сценария и .NET для отправки вашей электронной почты. http://www.mssqltips.com/sqlservertip/1753/sending-html-formatted-email-in-sql-server-using-the-ssis-script-task/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...