文字列内でサブストリングを検索し、その位置を示す Fixed Binary の整数値を返します。
INDEX(s,c,l)
s および c はいずれも文字列またはビット文字列で、c は s のサブストリングである可能性があります。 l はオプションの 3 番目のパラメーターで、検索を開始する s 内の位置を指定します。
INDEX(s,c) の例:
dcl s char (40) ; dcl i fixed bin (15); s = 'dmf plb cp js acb ltt dsa'; i = index(s, 'd'); put skip list (substr(s, i, 3));
次のように表示されます。
dmf
INDEX(s,c,l) の例:
dcl s char (40) ; dcl i fixed bin (15); s = 'dmf plb cp js acb ltt dsa'; i = index(s, 'd', 5); put skip list (substr(s, i, 3));
次のように表示されます。
dsa
なし。
説明
INDEX 関数は、文字列 s でサブストリング c を検索し、s 内の c の位置を示す整数値を返します。 l は、検索を開始する文字列内の位置を指定します。
s または c のいずれかが NULL 文字列の場合、結果はゼロです。サブストリング c が s に含まれていない場合も、結果はゼロです。それ以外の場合の結果は、サブストリング c の左端の文字またはビット (s および c がビット文字列の場合) の s 内の位置を示す整数です。-bifprec コンパイラ オプションでオーバーライドしない限り、結果精度は Fixed Binary(15) です。
オプションの 3 番目の引数 l は計算型でなければならず、使用する場合、結果精度は Fixed Binary(31,0) です。l が 1 未満であるか、または長さ (s) よりも大きい場合、結果はゼロです。