3

SSRS で次のエラーが発生します。

An error occurred during local report processing.
An error has occurred during report processing.
Query execution failed for dataset 'Dataset1'.
incorrect syntax near '=' 

このエラーの前に、パラメーターの順序について不平を言うエラーが発生していました( " フォーム '@name = value' が使用された後、パラメーター番号 3 以降のパラメーターを '@name = value' として渡す必要があります。 '@name = value' . ) .. の形式で渡され、パラメーターの順序を変更して修正しました (基本的には、他のパラメーターの後に開始日/終了日を配置します)。

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst]

@AccountIDs  = NULL,
@ClientIDs  = NULL,
@SupplierIDs  = NULL,
@FromDate = '19001010',      
@ToDate = '19001110',
@CompleteType = NULL,
@SourceType = NULL,
@SurveyStatus = NULL,
@IsSupplierUser = NULL

ここに画像の説明を入力

この問題を解決するにはどうすればよいですか? ストアド プロシージャという事実でしょうか。全体を通して動的SQLがこれに影響していますか?

また、これを SSMS で手動で実行すると、次のようになります。

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst] '20121010', '20121011', null,null,null,null,null,null 

その後、正常に動作します。それで、それはSSRSと関係があるのでしょうか?

4

1 に答える 1

1

元のエラーは、パラメーターの順序について文句を言いませんでした。代わりに、プロシージャを呼び出すときに位置パラメータと名前付きパラメータを混在させてはならないことを(少しわかりにくい)述べています。

新しいエラーには、次の2つの原因が考えられます。

  1. 呼び出しステートメントにタイプミスがあります。
  2. 手順自体にタイプミスがあります。

dbに送信される正確なステートメントを取得し、SSMSで手動で実行してみてください。それはあなたにもっと教えてくれるはずです。2つの例で異なるパラメータ値を使用していることに気づきました。

それでも解決できない場合は、SQL Server Profilerトレースを実行して、ストアドプロシージャステートメントの開始と完了、およびレポートの実行中のユーザーエラーをキャプチャします。そこで、エラーの原因となった正確なステートメントを確認できるはずです。

于 2013-02-12T02:07:47.993 に答える