2011-08-01 4 views
0

SQL実行タスクを含むSSISパッケージがあります。ここ は、私が入力パラメータ名がパラメータマッピングでは0であることを確認してきたコードSSIS Execute SQLタスクパッケージはBIDSで動作しますが、SQLエージェントにデプロイされると失敗します

declare @vPersonSourceTgt int, @CntFlag int 

set @vPersonSourceTgt = (select count(*) from tbl_ONL_Person) 

set @CntFlag = case when @vPersonSourceTgt = ? then 1 else 0 end 

select @CntFlag as vTargetCntFlag 

です。 BIDSではすべてがうまく動作しますが、SQL Agentにパッケージをデプロイするとうまくいきます。次のエラーで失敗します。

Description: Executing the query "declare @vPersonSourceTgt int, @CntFlag int set @vPersonSourceTgt = (select count(*) from tbl_ONL_PALSAccountPerson) set @CntFlag = case when @vPersonSourceTgt = ? then 1 else 0 end select @CntFlag as vTargetCntFlag" failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. End Error DTExec: The package execution returned DTSER_FAILURE (1). 

ご協力いただければ幸いです。 ありがとう!

答えて

3

ジョブとして実行するとパッケージが失敗する最も一般的な理由は、アクセス許可です.BIDSでは、パッケージはアカウントのアクセス許可で実行されています。スケジュールされると、SQL Agentの権限で実行されます。たとえば、Windows認証を使用してデータベースに接続していますか?

もう1つの一般的な問題は、サーバーにインストールされていないワークステーションの構成部品、例えばを持っているということですサードパーティのOLE DBプロバイダ。エラーは通常、より具体的であるため、しかし、それは、ここでのケースである可能性が高いようではありません。

ジョブとして実行されているパッケージの問題をトラブルシューティングし、解決する方法についての一般的なアドバイスとKB articleがあります。

関連する問題