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 に答える