如何在java中使用oracle instr函数

时间:2017-06-08 21:15:54

标签: java

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中编写相同的逻辑,我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

  

INSTR功能搜索string substring。 [...]如果找到等于substring的子字符串,则该函数返回一个整数,指示该子字符串的第一个字符的位置。如果没有找到这样的子字符串,则该函数返回零。

     

position是一个非零整数,表示Oracle数据库开始搜索的string字符,即与substring进行比较的第一个子字符串的第一个字符的位置。如果position为负数,则Oracle会从string的末尾开始向后计数,然后从结果位置向后搜索。

     

occurrence是一个整数,表示Oracle substringstring应该搜索的occurrenceoccurrence的值必须为正数。如果string大于1,则数据库不会在第一个匹配项上返回,但会继续比较occurrence的连续子字符串,如上所述,直到找到匹配号INSTR。< / p>

将其与:

进行比较

String.indexOf(String str, int fromIndex)

  

从指定的索引处开始返回指定子字符串第一次出现的索引,如果没有这种情况,则返回-1。

String.lastIndexOf(String str, int fromIndex)

  

返回指定子字符串最后一次出现的索引,从指定的索引向后搜索,如果没有这种情况,则返回-1。

因此,由于您的代码不使用第4个参数,而第3个参数为负数,因此lastIndexOflibrary("tidyverse") dt0 <- tibble(x=1:10, y=11:20) filter(dt0, 1==x) # Returns the first row purrr::contains(list(1), 1) # TRUE filter(dt0, purrr::contains(list(1), x)) # Returns NO rows 大致相同

请记住,Java索引是基于0的,Oracle的位置是从1开始的。