Použil bych REGEXP_SUBSTR
(dokumentace
), se správnými regulárními výrazy. Například:
select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Chapter \d*') from dual;
--Will return: Chapter 18
select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Unit \d*') from dual;
--Will return: Unit 10
select regexp_substr('Chapter 18 Unit 10 Sect 16', 'Sect \d*') from dual;
--Will return: Sect 16
Samozřejmě pokud uložíte Chapter xx Unit yy Sect zz
strings v tabulce, pak jednoduše použijete tento druh dotazu k získání více výsledků:
select regexp_substr(info_column, 'Chapter \d*') from mytable;
Můžete nahradit \d
s [0-9]
nebo [[:digit:]]