none
ストアドプロシージャの戻り値について RRS feed

  • 質問

  • ストアドプロシージャ実行後の戻り値について、-6が返却されます。

    ネットで調べてみたのですが、-6が示す内容がわかりませんでした。

    どなかたか「-6」が示す意味をご存知の方がいらっしゃいましたら、ご教授いただけないでしょうか。

    よろしくお願いいたします。

    ※デバッグ実行してみたところ、最後まで特に問題なく進めており、

     実行後のDBのデータを見る限りでは正常終了しているようです。

    ※ストアドプロシージャ内では戻り値の指定は行っていません。

    2015年4月17日 4:41

回答

すべての返信

  • 以下を読むとやはり何らかのエラーがありそうですね。
    例えば最初の例だと0で割る処理をすると-6が返って来ていますし、次の例では日時の扱いが誤っているのが原因で-6が返って来ているようです。
    また、これらのマイナスの戻り値について、昔のBooks OnlineというSQL Serverの資料には載っていたようですが、SQL Server 2000以降は載っていないとも書かれていますね。

    よって、もう一度当該のストアドプロシージャを見直す必要がありそうです。

    Return value from a stored proc on error
    http://stackoverflow.com/questions/1035789/return-value-from-a-stored-proc-on-error

    negative return value causes error
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b39cb2e5-3d49-4266-84dc-565b11ad0ffa/negative-return-value-causes-error?forum=transactsql


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク OOCCHHII 2015年4月17日 6:53
    2015年4月17日 6:04
  • trapemiya様

    ご返信いただきありがとうございます。

    こちらでもデバッグをさらに行ってみましたところ、

    trapemiya様のご回答にもありますとおり、0で除算した場合に-6が返却されていました。

    TRY~CATCHで例外処理(除算エラー時は計算結果を0とする)していたため、

    処理自体はそのまま正常に流れているのですが、

    その際に戻り値は-6で更新されたままであるため、今回の事象が発生したようです。

    そのため、分母が0の場合は計算結果を0とするよう、

    IF文での処理に変更しましたところ、0が返却されるようになったため、

    今回はこれで対応しようと思います。

    ご回答いただき真にありがとうございました。

    2015年4月17日 6:51