blog

ストアドファンクション - ストアドファンクションの作成

mysqlの数は、関数が付属していますが、時間のいくつかは、関数の需要を満たすために十分ではありませんが付属して、この時点で、ストアド関数をカスタマイズする必要があり、ストアド関数とストアドプロシージ...

May 29, 2020 · 2 min. read
シェア

リストmysqlの数は、関数が付属していますが、何回かの関数は、ストアド関数をカスタマイズする必要があるこの時間のニーズを満たすために非常に良いではありませんが付属して、ストアド関数とストアドプロシージャは、SQLコードの一部の単純なカプセル化に多少似ている特定の関数を完了し、結果を返します。構文は次のとおりです:

CREATE FUNCTION function RETURNS 戻り値の型

開始

SQLステートメント....

リターン

終了

ストアドプロシージャとは異なり、ストアド関数は出力パラメータや入出力パラメータの型を指定することはできません。ストアド関数は入力型のみを指定することができ、INを持つことはできません。 また、ストアド関数はRETURNコマンドで処理結果を呼び出し元に返すことができます。戻り値の型は、引数リストに続く RETURNS コマンドであらかじめ指定する必要があることに注意してください。以下にフィボナッチ級数を計算する関数を作成します。

ここでは、ストアド関数の先頭としてfn_を使用して、それがより簡単にストアドプロシージャのsp_の先頭から区別できるように、上記のステートメントからストアドプロシージャで見ることができるステートメントの流れを分析することもストアド関数に使用することができます同じ、DECLARE宣言変数とSETセット変数も例外処理ステートメントの定義も適応されるを含む、もちろん、ストアド関数に使用することができます、selectキーワードを使用してストアド関数の実行は、同時に複数のストアド関数を実行することができます注意してください。selectキーワードを使用して、ストアド関数の実装では、同時に複数のストアド関数を実行することができますまあ、ストアド関数は、このように定義されている、非常にストアドプロシージャに似ていませんか?しかし、違いがある、この点を分析するために残ることです。OKを〜、さらにストアド関数をよく理解するために、次のユーザーのストアド関数を挿入するユーザーを書き込みます:

create function fn_get_bom_child(pid VARCHAR(10))

varchar(4000)を返します。

開始

DECLARE temp VARCHAR(10000).

DECLARE tempChild VARCHAR(4000).

SET temp = '';

SET tempChild = pid;

WHILE tempChild IS NOT NULL

DO

SET temp = CONCAT(temp,',',tempChild);

SELECT GROUP_CONCAT(comp_material_id) into tempChild from t_bom_info where FIND_IN_SET(parent_material_id,tempChild);

WHILE を終了します。

RETURN temp.

終了

Read next

ソフトウェアテストの概要

システム制限など テスト要件は、テストの内容、すなわちテストの具体的な対象を定義します。テスト要求事項を分析する際には、次のような一般的なルールを適用することができます。テスト要件が観察または測定できない場合、要件が満たされているかどうかを判断するために評価することはできません。 各ユースケースまたはシステムにおいて、補足要件とテスト要件...

May 29, 2020 · 9 min read