我在NCLOB列中有大字符串,我允许用户在其中搜索。我想以最好的方式展示结果。有没有办法'剪切'我的结果集中的一些前一个和下一个单词?
使用dbms_lob.instr()
函数找到结果。我找到了一些解决方案,但在这种情况下,它们是复杂的,并且使用起来很慢。
最有效的方式是什么? instr和susbstr的组合?还是正则表达式?我担心LOB列的正则表达式性能。
答案 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个字符,之后会发出完整的字样(从第一个空格到最后一个空格/逗号/斜杠/反斜杠)。