Oracle SQL для отображения всех вхождений строки в поле Clob / Blob - PullRequest
0 голосов
/ 26 марта 2020

В моей таблице Oracle есть поле "Table1" со столбцом "texta", в котором записаны все мои коды. Я хотел бы извлечь все вхождения, которые соответствуют «записи» скороговорки. или «Запись». и перечислите результат. Например: -

Содержимое текста

CreateRecord = CreateRecord(Record.PS_JOB)
CreateRecord = CreateRecord(Record.PS_NATIONAL_ID)

Ожидаемый результат:

PS_JOB
PS_NATIONAL_ID

1 Ответ

1 голос
/ 26 марта 2020

Посмотрите, поможет ли это.

SQL> desc test
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- -------------------
 ID                                                             NUMBER
 TEXTA                                                          CLOB

SQL> select * From test;

        ID TEXTA
---------- ------------------------------------------------------------------------
         1 CreateRecord = CreateRecord(Record.PS_JOB)
           CreateRecord = CreateRecord(Record.PS

         2 CreateRecord = CreateRecord(Record.ABC_DEF)
         3 CreateRecord = CreateRecord(Record.LITTLE_FOOT)

SQL> select id,
  2    regexp_substr(texta, 'Record\.\w+', 1, column_value) result
  3  from test cross join
  4       table(cast(multiset(select level from dual
  5                           connect by level <= regexp_count(texta, 'Record\.')
  6                          ) as sys.odcinumberlist));

        ID RESULT
---------- ------------------------------------------------------------------------
         1 Record.PS_JOB
         1 Record.PS_NATIONAL_ID
         2 Record.ABC_DEF
         3 Record.LITTLE_FOOT

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...