2013-06-26 2 views
1

실행 SQL 작업에서 변수 값을 입력 매개 변수로 스크립트에 전달 중입니다. 해당 값이 C :/Archive 인 패키지의 문자열 변수오류 수정 방법 : 여러 단계의 OLE DB 작업에서 오류가 발생했습니다. 각 OLE DB 상태 값을 확인하십시오

입력 매개 변수 데이터 유형은 execute sql task의 매개 변수 매핑에서 varchar입니다.

스크립트에서

Declare @body1 nvarchar(max), @b nvarchar(max) 

set @body1 = 'The softdollar error files are located at ' 
set @b = @body1 + ? 

EXEC msdb.dbo.sp_send_dbmail 
@profile_name='PWO Notification', 
@recipients='[email protected]', 
@subject= 'Soft Dollar Package', 
@body= @b 

패키지 오류가 발생 SQL 작업이 실행합니다.

"여러 단계 OLE DB 작업을하는 동안 오류가 발생했습니다를 사용할 수있는 경우, 각 OLE DB 상태 값을 확인 어떤 작업이 이루어지지 않았습니다.. ". 가능한 실패 이유 : 쿼리, "ResultSet"속성이 올바르게 설정되지 않았거나 매개 변수가 올바르게 설정되지 않았거나 올바르게 연결되지 않았습니다.

답변

1

set @b = @body1 + ?set @b = @body1 + N'?'으로 변경하면 작동합니까?

내 가정은 문이 예상대로 연결되지 않는다는 것입니다. 특히, 당신이했는지 declare @c nvarchar(max); SET @c =?; SET @b = @body1 + @c; 나는 일이 이스케이프되고 올바른 이스케이프 방식으로 대체되었다고 생각합니다.

그렇지 않은 경우 답신을 보내면이 답변을 삭제하겠습니다.

0

새 변수를 만들고 해당 변수에 표현식으로 스크립트를 지정하여 문제를 해결했습니다. Execute sql task에서 변수를 호출했다. 변수 매핑에서 변수를 물음표가있는 곳에 @ [user :: variable]와 같이 입력하십시오.

관련 문제