ORACLE在NCLOB中找到一些上一个和下一个单词

时间:2012-07-31 09:51:50

标签: oracle

我在NCLOB列中有大字符串,我允许用户在其中搜索。我想以最好的方式展示结果。有没有办法'剪切'我的结果集中的一些前一个和下一个单词?

使用dbms_lob.instr()函数找到结果。我找到了一些解决方案,但在这种情况下,它们是复杂的,并且使用起来很慢。

最有效的方式是什么? instr和susbstr的组合?还是正则表达式?我担心LOB列的正则表达式性能。

1 个答案:

答案 0 :(得分:0)

好的,我做到了!喜欢这个

REGEXP_SUBSTR(dbms_lob.substr(MC.content_txt,80,dbms_lob.instr(UPPER(MC.content_txt),UPPER(:key))-40),' .+[ \/,\\]',1,1,'n')

它会在键周围切出80个字符,之后会发出完整的字样(从第一个空格到最后一个空格/逗号/斜杠/反斜杠)。