ホームページ >データベース >mysql チュートリアル >SQL コードとストアド プロシージャ間で値を渡すにはどうすればよいですか?
SQL を使用する場合、exec 呼び出しの結果を変数に割り当てることが必要になる場合があります。このシナリオでは、up_GetBusinessDay の出力を @PreviousBusinessDay という変数に割り当てます。
実行結果を変数に直接割り当てるのは論理的であるように思えるかもしれませんが、変数の場合、このアプローチは SQL ではサポートされていません。その理由は、exec ステートメントは、値を返さずにストアド プロシージャを実行するために使用されるためです。したがって、実行結果を変数に直接割り当てることはできません。
ストアド プロシージャから単一の値を返すには、出力パラメータを使用できます。出力パラメーターを使用すると、ストアド プロシージャによって返される値を受け取る変数を指定できます。 SQL Server で出力パラメータを作成して使用する方法は次のとおりです。
ストアド プロシージャの定義:
CREATE PROCEDURE YourStoredProcedure ( @Param1 int ,@Param2 varchar(5) ,@Param3 datetime OUTPUT ) AS IF ISNULL(@Param1, 0) > 5 BEGIN SET @Param3 = GETDATE() END ELSE BEGIN SET @Param3 = '1/1/2010' END RETURN 0 GO
ストアド プロシージャ呼び出し:
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23), @OutputParameter, 121)
出力:
0 2010-01-01 00:00:00.000
出力パラメーターを使用すると、実行呼び出しの結果を変数に効率的に割り当てることができます。 。この手法は、ストアド プロシージャから単一の値を取得する必要がある場合によく使用されます。
以上がSQL コードとストアド プロシージャ間で値を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。