Użyłbym REGEXP_SUBSTR
(dokumentacja
), z prawymi wyrażeniami regularnymi. Na przykład:
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
Oczywiście, jeśli przechowujesz Chapter xx Unit yy Sect zz
ciągów w tabeli, po prostu użyj tego rodzaju zapytania, aby uzyskać wiele wyników:
select regexp_substr(info_column, 'Chapter \d*') from mytable;
Możesz zastąpić \d
z [0-9]
lub [[:digit:]]