ホームページ >データベース >mysql チュートリアル >SQL `exec` コマンドの結果を変数に割り当てるにはどうすればよいですか?
出力パラメータを使用して実行結果を SQL 変数に割り当てる
SQL では、ストアド プロシージャと関数を実行するために exec コマンドがよく使用されます。あなたが提案したような式 ("exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1") を使用して exec 呼び出しの結果を変数に直接割り当てることはできませんが、この機能を実現する代替方法があります。
推奨されるアプローチの 1 つは、出力パラメーターを使用することです。出力パラメーターを使用すると、変数を入力として渡すだけでなく、ストアド プロシージャまたは関数から返された値で変数を更新することもできます。その方法は次のとおりです:
出力パラメーターを使用してストアド プロシージャを作成します:
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
この例では、@Param3 パラメーターが出力として宣言されています。パラメータ。ストアド プロシージャによって返された値で更新されます。
出力パラメータを使用したストアド プロシージャの呼び出し:
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23), @OutputParameter, 121)
この例では、 @OutputParameter変数が宣言され、出力パラメーターとしてストアド プロシージャに渡されます。 exec 呼び出しの後、@OutputParameter 変数にはストアド プロシージャによって返された結果が含まれ、コンソールに出力されます。
出力:
0 2010-01-01 00:00:00.000
出力パラメーターを使用すると、SQL でストアド プロシージャとクライアント アプリケーションの間で値を渡すための堅牢かつ効率的な方法が提供されます。
以上がSQL `exec` コマンドの結果を変数に割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。