Oracle SQL列出Clob / Blob字段中所有出现的字符串

问题描述 投票:-2回答:1

我的Oracle表“ Table1”中有一个字段,其中的“ texta”列已写入所有代码。我想提取所有与模式“记录”匹配的事件。或“记录”。并列出结果。例如:-

texta的内容

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

预期结果是

PS_JOB
PS_NATIONAL_ID
oracle clob regexp-like
1个回答
1
投票

看看是否有帮助。

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>
© www.soinside.com 2019 - 2024. All rights reserved.