2012-10-18 3 views
1

sp_send_dbmail을 사용하여 첨부 파일을 보내려고합니다. 첨부 파일은 테이블의 varbinary (MAX) 열에 저장됩니다. 내 질문은 다음과 같습니다.바이너리 첨부 문제가있는 sp_send_dbmail

EXEC msdb.dbo.sp_send_dbmail 
     @recipients='[email protected]', 
     @subject = 'Test Attachment', 
     @body = 'Test', 
     @body_format = 'HTML', 
     @profile_name = 'intranetadmin', 
     @query = 'Select DocumentData from [myDB].[dbo].[Documents] Where DocumentID = 8', 
     @query_result_header = 0, 
     @attach_query_result_as_file = 1, 
     @query_attachment_filename = 'Test.pdf', 
     @exclude_query_output = 1, 
     @query_no_truncate = 0; 

전자 메일에는 pdf 첨부 파일이 첨부되어 전송됩니다. 그러나 첨부 파일을 열 때 오류가 발생합니다. 나는 명시 적으로 명시 적으로 내 쿼리에서 아니오라고하더라도 파일의 크기가 잘 리고 있다고 생각합니다.

데이터베이스 메일 설정에서 허용되는 최대 메시지 크기를 확인했으며 현재 보내려는 파일이이 크기에 가까워서 104857600 바이트 (100MB)입니다. 그래서 약간 혼란 스럽습니다.

답변

0

@query_no_truncate 매개 변수를 1로 설정하십시오. 쿼리에 큰 가변 길이 데이터 형식을 사용하고이 옵션이 0이거나 지정되지 않은 데이터는 256 자로 잘라집니다. 참조 : http://msdn.microsoft.com/en-us/library/ms190307.aspx

0

이 글은 오래된 글이지만, 같은 문제를 발견했습니다. 문제는 SQL이 오류를보고하고 첨부 파일에 오류 메시지를 저장 한 것입니다.

첨부 파일의 이름을 .txt 확장명으로 변경하고 전자 메일을 보내십시오. .txt 파일을 열고 오류를 봅니다. 보안 구성에서는 아마도 그렇게 될 것입니다.

관련 문제