0

エラーが発生します

= 付近の構文が正しくありません

この手順の実行中:

DECLARE @I_BRANCH_ID VARCHAR(MAX) 

EXEC GETBALANCE CASE WHEN @I_BRANCH_ID ='' THEN 0 ELSE @I_BRANCH_ID END
4

3 に答える 3

1

このようなEXECUTEステートメントに条件付き構文を入れることはできません。

代わりに、次を試してください。

IF (@I_BRANCH_ID = '')
    SET @I_BRANCH_ID = '0'

EXECUTE GetBalance @I_BRANCH_ID

編集:

より多くのパラメータを使用すると、次のように合理化できます。

SELECT @param1 = CASE WHEN @param1 = '' THEN '0' ELSE @param1 END,
       @param2 = CASE WHEN @param2 = '' THEN '0' ELSE @param2 END,
       @param3 = CASE WHEN @param3 = '' THEN '0' ELSE @param3 END
       ... etc etc
于 2012-12-05T09:40:17.497 に答える
0
DECLARE @I_BRANCH_ID VARCHAR(MAX)
SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN '0' ELSE @I_BRANCH_ID END
EXEC GETBALANCE @I_BRANCH_ID
于 2012-12-05T09:46:22.177 に答える
0

EXECUTE ステートメントとは別に変数の値を設定してみてください。

DECLARE @I_BRANCH_ID VARCHAR(MAX) 

SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN 0 ELSE @I_BRANCH_ID END

EXEC GETBALANCE @I_BRANCH_ID
于 2012-12-05T09:45:51.667 に答える