如何对ORACLE里的CLOB字段进行模糊查询?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何对ORACLE里的CLOB字段进行模糊查询?相关的知识,希望对你有一定的参考价值。

参考技术A 语法:select * from TABLE表 where\\x0d\\x0adbms_lob.instr(字段名(clod类型),\'查询条件\',1,1) > 0\\x0d\\x0a\\x0d\\x0acreate table products(\\x0d\\x0aproductid number(10) not null,\\x0d\\x0aname varchar2(255),\\x0d\\x0adescription CLOB);\\x0d\\x0a\\x0d\\x0a查询语句:\\x0d\\x0a\\x0d\\x0aselect t.productid, t.name from products t\\x0d\\x0a\\x0d\\x0awhere dbms_lob.instr(t.description, \'aaa\', 1, 1) > 0;\\x0d\\x0a\\x0d\\x0a在Oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为:\\x0d\\x0ainstr(sourceString,destString,start,appearPosition).\\x0d\\x0a其中sourceString代表源字符串;destString代表想聪源字符串中查找的子串;start代表查找的开始位置,该参数可选的,默认为\\x0d\\x0a1;appearPosition代表想从源字符中查找出第几次出现的destString,该参数也是可选的,默认为1;如果start的值为负数,那\\x0d\\x0a么代表从右往左进行查找。\\x0d\\x0a返回值为:查找到的字符串的位置。

oracle 中clob内容怎么查询

表table 字段A(SYSTEM.XMLTYPE) 内容全是clob,要怎么查询出A字段的内容,求大佬指点。

to_char转换一下就行了

select 其他字段,to_char(clob字段) from 表名追问

select to_char(clob字段) from 表名
我这样转换试过,提示expected number got -
大佬帮忙解惑下,谢谢。

追答

估计是超长了

select substr(to_char(clob字段),1,4000) from 表名

不过这样会显示不全,4000个字符后不显示了

追问

大佬,还是报一样的错误。。。

追答

你把报错截个图?

追问

追答

怎么是报的数据类型的错误,奇怪

select to_char(substr(clob字段,1,4000)) from 表名

这样还不行吗,改了一下

追问

现在提示character string buffer too small

追答

4000调小点,2000或1000什么的

追问

调小了,几个参数试了还是一样。。

追答

私信你,留意一下

参考技术A 应该是select to_char(substr(clob字段,1,4000)) from 表名
先截取字符串,再转换to_char

以上是关于如何对ORACLE里的CLOB字段进行模糊查询?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中如何查询CLOB字段类型的内容

Oracle中如何查询CLOB字段类型的内容

Oracle中如何查询CLOB字段类型的内容

oracle如何导出具有clob字段类型的sql?

oracle中LOBSEGMENT类型存储的clob的内容过大,如何清除clob字段内容。释放表空间!

oracle 中clob内容怎么查询