2016-05-28 41 views
0

レコードをテーブルに挿入すると呼び出される電子メールを送信するストアドプロシージャがあります。私はテーブルに追加された文書を添付して電子メールを送信したいと思います。添付ファイルを取得できますが、ファイルを開くと破損します(ファイルが破損しています)。SQL sp_send_dbmail添付ファイル付きの電子メールを送信すると、PDFファイルが破損しています

誰でもお手伝いできますか? ここにコードがありますが、わかりやすくするために宣言文は除外しました。

Select @query = 'set nocount on; select cast(Document as varchar(max)) from dbo.myTable where ID = '+ CAST(@ID as varchar(100)) 

EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'Profile1', 
    @recipients = @RecipientEmail, 
    @subject = @Subject, 
    @body = @Body, 
    @importance = 'HIGH', 
    @query_attachment_filename = 'att.pdf', 
    @attach_query_result_as_file = 1, 
    @query_result_no_padding=1, 
    @query = @query, 
    @query_no_truncate = 1, 
    @query_result_header = 0, 
    @exclude_query_output = 0, 
    @append_query_error = 1, 
    @query_result_width = 32767, 
    @body_format ='HTML' 

私は何か助けていただきありがとうございます。前もって感謝します。

答えて

0

私がこれを達成できる唯一の方法は、一時的にファイルをローカルフォルダにエクスポートしてから電子メールに添付することでした。

set @Pid=CAST(@ID as varchar(100)) 
SELECT @query= 'BCP "SELECT Document from myDB.dbo.myTable where ID ='[email protected]+'" queryout "E:\Log_Files\Attached.pdf" -T -N' 
     EXEC xp_cmdshell @query; --, NO_OUTPUT;  


    EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'Profile1', 
    @recipients = @InviteeEmail, 
    @subject = @ReferenceNo, 
    @body = @PublicationContent, 
    @importance = 'HIGH', 
    @file_attachments = 'E:\Log_Files\Attached.pdf', 
    @body_format ='HTML' --because 

END 
Go 

BCPユーティリティhereについて詳しく読むことができます。

0

エンコードされているため、テキストファイルのみが添付ファイルとしてサポートされているようです。ソリューションといくつかの詳細については、this以前の質問をご覧ください。

+0

感謝。 –

0

SQL Server 2014を使用しています。テーブル名は3部で指定します。私はagain.Itが実際にその方法を働いたことを見て思い出させるためservername.dbname.dbo.tblname

DECLARE @Body VARCHAR(8000) 
DECLARE @Qry varchar(8000) 

SET @Body ='Hi All,' 

SET @Qry='set nocount on;select * from tbl_name' 

DECLARE 
@tab char(1) = CHAR(9) 
EXEC msdb.dbo.sp_send_dbmail 
@recipients = 'mailid', 
@blind_copy_recipients='mailid', 
@body= @Body, 
@[email protected], 
@subject='Send db mailer with attachment', 
@attach_query_result_as_file = 1, 
@query_attachment_filename='filename.xls', 
@[email protected], 
@query_result_no_padding=1 
関連する問題