2017-06-08 7 views
-1
if instr(lv_my_name, ' ', -2) != length(lv_my_name) - 2 or length(lv_my_name) = 2 then 
    lv_my_name:= lv_my_name; 
else 
    lv_my_name:= trim(substr(lv_my_name, 0, length(lv_my_name)-1)); 
end if; 

Javaで同じロジックを記述する場合、どうすればよいですか?Javaでoracle instr関数を使用する方法

答えて

0

INSTR(string, substring [, position [, occurrence] ])

substringためINSTR機能検索string。 [...] substringに等しい部分文字列が見つかった場合、この部分文字列の最初の文字の位置を示す整数を返します。そのような部分文字列が見つからない場合、関数はゼロを返します。

positionは、stringの文字を示す0以外の整数です.Oracle Databaseは検索を開始します。つまり、最初の部分文字列の最初の文字の位置は、substringと比較されます。 positionが負の場合、オラクルはstringの末尾から後方に数えて、結果の位置から後方に検索します。

occurrenceは、オラクルが検索するstringsubstringの出現を示す整数です。 occurrenceの値は正でなければなりません。 occurrenceが1より大きい場合、データベースは最初の一致では戻りませんが、occurrenceが見つかるまで、上記のようにstringの連続部分文字列を比較し続けます。

はにいることの比較:

String.indexOf(String str, int fromIndex)

指定したインデックスから始まり、指定された部分文字列の最初に出現する位置のインデックスを返します、または-1こうした出現がない場合。

String.lastIndexOf(String str, int fromIndex)

指定されたインデックスから後方検索して、指定のサブストリングの最後に現れるインデックスを返し、-1こうした出現がない場合。

あなたのコードは4番目のパラメータを使用していない、と3番目のパラメータが負であるので、そう、INSTRlastIndexOfはほとんど同じです

のJavaインデックスは0ベースであり、Oracleの位置、1-ていることを忘れないでくださいベース。

関連する問題