例
以下の埋め込み SQL の例は、要求された文字列の最初に発生した位置である 2 を返します。
SET a=$LISTBUILD("Red","Blue","Green")
&sql(SELECT $LISTFIND(:a,'Blue') INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }
以下の埋め込み SQL の例は 0 を返し、要求された文字列が見つからなかったことを表します。
SET a=$LISTBUILD("Red","Blue","Green")
&sql(SELECT $LISTFIND(:a,'Orange') INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }
以下の 3 つの埋め込み SQL の例は、startafter 引数の実行結果です。最初の例は、要求された文字列が startafter 位置にあるため、要求した文字列が見つからず 0 を返します。
SET a=$LISTBUILD("Red","Blue","Green")
&sql(SELECT $LISTFIND(:a,'Blue',2) INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }
2 番目の例は、startafter がゼロ (既定値) に設定されているため、要求された文字列が先頭位置にあるのを見つけます。
SET a=$LISTBUILD("Red","Blue","Green")
&sql(SELECT $LISTFIND(:a,'Red',0) INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }
3 番目の例は、要求された文字列の 1 つ目が startafter 位置より前にあるため、2 つ目を見つけて 5 を返します。
SET a=$LISTBUILD("Red","Blue","Green","Yellow","Blue")
&sql(SELECT $LISTFIND(:a,'Blue',3) INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }
$LISTFIND 関数は、完全な要素のみと一致します。したがって、以下の例ではすべての要素に “B” が含まれているものの、リスト要素が文字列 “B” とは同じではないため、0 が返されます。
SET a=$LISTBUILD("ABC","BCD","BBB")
&sql(SELECT $LISTFIND(:a,'B') INTO :b)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"The position is ",b }