【发布时间】:2019-03-03 21:20:18
【问题描述】:
我有一个带有 clob 列(+100,000 行)的大表,我需要在特定时间范围内从中搜索特定单词。
{select id, clob_field, dbms_lob.instr(clob_field, '.doc',1,1) as doc, --ideally want .doc
dbms_lob.instr(clob_field, '.docx',1,1) as docx, --ideally want .docx
dbms_lob.instr(clob_field, '.DOC',1,1) as DOC, --ideally want .DOC
dbms_lob.instr(clob_field, '.DOCX',1,1) as DOCX --ideally want .DOCX
from clob_table, search_words s
where (to_char(date_entered, 'DD-MON-YYYY')
between to_date('01-SEP-2018') and to_date('30-SEP-2018'))
AND (contains(clob_field, s.words )>0) ;}
这组词是“.doc”、“.DOC”、“.docx”和“.docx”。当我使用 CONTAINS() 它似乎忽略了点,因此为我提供了很多行,但没有包含其中的文档扩展名。它会查找带有 .doc 作为地址一部分的电子邮件,因此该文档的两边都会有一个句点。
即mail.doc.george@here.com
我不希望出现这些情况。我试过在单词末尾加一个空格,它忽略了空格。如上所示,我已将它们放在我创建的搜索表中,但它仍然忽略了空格。有什么建议?
谢谢!!
【问题讨论】:
-
类似question
标签: oracle select contains clob