sql >> データベース >  >> RDS >> Mysql

MySQLによると:#1415-関数から結果セットを返すことは許可されていません

    この場合のエラーメッセージは、最も重要な部分を示しています。

    この動作は、ストアドプロシージャと関数に関するMySQLマニュアルに記載されている内容と一致しています。

    @Pnに値を割り当てます 結果セットを返すselectステートメントを使用する変数。これは関数では許可されていません。これらのステートメントをコードから削除する必要があります。 RETURN river 結果のを返します 、ただし結果ではありませんセット

    また、接続全体で共有されるセッション変数(@variable_nameとして定義される変数)を使用することも心配です。そのため、接続内で同時に同じ関数を複数回呼び出すと、相互に干渉する可能性があります。

    ストアド関数は、returnを使用して出力として単一の値のみを返すことになっています。 声明。それ以外のものは副作用と見なされます。 MySQLスクリプトに複数の変数を設定する場合は、必要 ストアドプロシージャを使用します。ストアド関数は使用できません。




    1. SQLServerODBCドライバーでエラーが発生しない

    2. すべての行のテキストを検索して置換するSQLクエリ

    3. SQLサーバーで複数の行から1つの行に値をフェッチ/選択します

    4. Oracleデータベースへの挿入/更新/削除をログに記録する