Oracle中的INSTR函数是一个字符串查找函数,用于返回目标字符串在源字符串中首次出现的位置。
-
基础语法
INSTR(源字符串, 目标字符串)
示例:SELECT INSTR('HELLO WORLD', 'WO') FROM dual;返回结果为7,表示'WO'从第7个字符开始出现。 -
扩展语法(指定起始位置和匹配次数)
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)- 起始位置可为负数(表示从末尾倒序搜索),但返回的序号仍为正序位置。
示例: - 查找第二次出现的
'O':SELECT INSTR('HELLO WORLD', 'O', 1, 2) FROM dual;返回8。 - 倒序查找第二次出现的
'O':SELECT INSTR('HELLO WORLD', 'O', -1, 2) FROM dual;返回5。
- 起始位置可为负数(表示从末尾倒序搜索),但返回的序号仍为正序位置。
-
与
LIKE的对比
INSTR可实现类似LIKE的模糊查询,但更灵活,例如可通过返回值是否为0判断是否存在匹配。 -
应用场景
- 布尔盲注:在Oracle注入中,通过
INSTR遍历数据位置进行布尔判断。 - 字符串截取配合
SUBSTR:先用INSTR定位,再用SUBSTR截取特定部分。
- 布尔盲注:在Oracle注入中,通过
-
注意事项
- 返回值从
1开始计数,未找到则返回0。 - 区分大小写,需结合
UPPER/LOWER函数实现不区分大小写的搜索。
- 返回值从
1233

被折叠的 条评论
为什么被折叠?



