ご存じのように、Oracle POSIXのregexes実装ではワード境界がサポートされていません。 1つの回避策をここに示唆します: Oracle REGEXP_LIKE and word boundariesOracle regexp_likeワード境界複数ワード回避策
しかし、私はすべての4文字列を選択したい場合は動作しません。たとえば、次のように考えてみてください。
myvar:=regexp_substr('test test','(^|\s|\W)[\S]{4}($|\s|\W)')
これは明らかに最初のオカレンスだけを選択します。私はOracleの世界でこれを行う方法はわかりませんが、通常は単に(\b)[\S]{4}(\b)
です。問題は、ほとんどのワーキングアラウンドは、ルックアラウンドのような存在しない機能に依存していることです。
Oracle XMLを使用して素晴らしいソリューションを多数見てきましたが、私はそれについて全く知らないです。誰かが私を始めさせるために本やウェブサイトを勧めてもいいですか? –