機能の置き換えまたはF_FIND_IN_SET作成(piv_str1 VARCHAR2、VARCHAR2 piv_str2、p_sep VARCHAR2:= '')
RETURN数は
l_idx番号:= 0; -区切りpiv_str2位置算出する
STR VARCHAR2(500)と、 -パーティション文字ストリング取ら
piv_strのVARCHAR2(500):= piv_str2 ; - 割り当てpiv_str2 piv_strに
RES番号:= 0; -返す結果
res_place番号:= 0; -ターゲット文字列内の元の文字列の位置
BEGIN
-フィールドがNULLである場合は0戻り
IF THEN piv_str2あるNULL
戻りRES;
END IF;
-ない区切りpiv_strがない場合、及び直接決意piv_str1 piv_strは等しく、等しい1 = res_place。
IF InStr関数(piv_str、p_sep ,. 1 )= 0 THEN
IF THEN piv_str = piv_str1
。res_place:= 1;
RES = res_place;
END IF;
ELSE
-セパレータpiv_strによって撮影されたサイクル
LOOP
l_idx:= InStr関数(piv_str、p_sep);
-
res_place:+ = res_place 1;
-場合がpiv_strセパレータとき
IF l_idx> 0 THEN
-最初のデリミタフィールドSTR前に採取
STR:= SUBSTR(piv_str ,. 1 ,. 1- l_idx);
-分析およびpiv_str1 STRが等しく、ループ端部が等しい判断する
場合は、STR = piv_str1
RES = res_place;
EXIT;
END IF;
piv_str:= SUBSTR(piv_str、l_idx長さ+ (p_sep));
ELSE
-取ら不在piv_str後デリミタは、同じpiv_strとpiv_str1等しいres_path = RESか否かが判断される
IfはTHEN piv_str = piv_str1
RES = res_place;
; END IF
-かかわらずかどうかの最終等しいです私たちは、ループの外にある
EXIT;
END IF;
END LOOP;
-サイクルの終了
END IF;
-戻り値は、RES
RETURN RESを;
END F_FIND_IN_SET。
mysqlのfind_set_inを達成するために、Oracleの機能
おすすめ
転載: www.cnblogs.com/vofill/p/11803137.html
ランキング