不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

对Oracle的BLOB字段进行搜索

有些应用,将大文本保存在Oracle的BLOB类型字段中,如果希望对内容进行搜索,使用传统的LIKE是会有问题的,会报数据类型错误:

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BLOB

这个时候可以使用以下方式进行搜索:

SELECT *
FROM TableName
WHERE 
dbms_lob.instr(ColumnName,utl_raw.cast_to_raw('关键字'),1,1)<>0

但是这样搜索的效率比较慢,毕竟是针对大文本进行操作。针对这个,Oracle中可以使用全文索引和CONTAINS函数进行搜索。

不允许评论
粤ICP备17049187号-1