1

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

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

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

4

1 回答 1

0

好的,我做到了!像这样

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

它在键周围切割 80 个字符,然后输出完整的单词(从第一个空格到最后一个空格/逗号/斜杠/反斜杠)。

于 2012-07-31T15:01:05.273 回答