1,instr 函数
在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
语法如下:
instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串
start_position:代表string1的哪个位置开始查找。此参数可选,如果省略默认为1.
字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance代表要查找第几次出现的string2.此参数可选,如果省略,默认为1.如果为负数系统会报错。
举例说明:返回字符"j",在字符串"liuhongjia"中开始的索引,也就是第一次出现的位置。
如果返回0表示不包含,否则表示包含。
2,谈到oracle 系统函数,不得不说dual表,下面是引用相关的参考资料:dual是一个系统表,不能删除或者修改其表结构。它的名称叫做“伪表”或者“哑表”。查看其表结构:SQL> desc dual 名称
是否为空
?
类型 ----------- -------- -----------
DUMMY VARCHAR2(1)
其字段只有一个“dummy”,中文叫做“哑巴”。长度只有1。这个表结构只供参考。
在Oracle中,使用dual的主要原因是为了计算表达式的值。表的操作只能是查询,其它如增删改或者修改表结构,都没有实际应用价值,不用研究。也可以一次性计算多个表达式的值:还有一个最常见的用途就是查询当前系统日期,·dual表主要用于计算表达式。 ·表结构只供参数,实际返回的列数与表达式的个数有关·dual表只有可能返回一行,不可能返回多行。因为dual表并不是从表中取数据。
如上例中查找字符串中字符出现出现的位置,又如查系统日期:
进行数学计算:
3,oracle下划线转义
用法如下图所示: