0

FORMULA_TEXTデータベース内のフィールドを検索する方法を教えてください。開始文字と終了文字の間' に、#または@

例えば@A'123'HEY'345''@B'K

SO この例では123、が345あり、文字@Bの開始と終了の間にある'ので、SQL でこれらを見つけたいと思います。各レコードでこれをファイルし、開始と文字の間に含まれているかFORMULA_TEXTどうかを確認します。@#'

したがって、私の例では結果は@B

ちなみに、難しすぎる場合は、最初に@s を見つけ#てから、開始文字と終了'文字の間にある s を見つけることができます

ps:HEY私の例では、 ' 文字の開始と終了の間にありません。

4

1 に答える 1

0

使用できますREGEXP_SUBSTR

SQL> SELECT txt, regex, regexp_substr(txt, regex, 1, 1, 'c', '3') result
  2    FROM (SELECT q'¤@A'123'HEY'345''@B'K¤' txt,
  3                 q'¤^([^']*|('[^']*')*?)*?'([^']*[@#][^']*)'¤' regex
  4            FROM dual);

TXT                  REGEX                                    RESULT
-------------------- ---------------------------------------- ---------
@A'123'HEY'345''@B'K ^([^']*|('[^']*')*?)*?'([^']*[@#][^']*)' @B
于 2013-06-03T14:26:20.373 に答える