在oracle中多大文本数据我们没有办法使用like进行查询,所以只能使用oracle中的函数。

在Oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为:
instr(sourceString,destString,start,appearPosition).
其中sourceString代表源字符串;destString代表想聪源字符串中查找的子串;start代表查找的开始位置,该参数可选的,默认为1;appearPosition代表想从源字符中查找出第几次出现的destString,该参数也是可选的,默认为1;如果start的值为负数,那么代表从右往左进行查找。
返回值为:查找到的字符串的位置。

Oracle CLOB字段为查询条件进行 模糊查询/精确查询
-- CLOB字段查询 成文本 (这个有啥用??)
select dbms_lob.substr(t.CLOB字段) as text from 表名称 t
-- CLOB字段为查询条件 模糊查询
dbms_lob.instr(CLOB字段,'要匹配的文字',1,1)<>0
-- CLOB字段为查询条件 精确查询
dbms_lob.compare(CLOB字段, to_clob('要匹配的文字')) = 0

--------------------------------------------------------------------------------

select * from table where instr(table.a, 'abc ', 1) > 0 and length(table.a) = length('abc ')

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐