Используйте REGEXP_SUBSTR
select regexp_substr('Attachments:Attachments~Attachment','[^~]+$') from dual;
[^ ]
— используется для указания списка несовпадающих символов, в котором вы пытаетесь сопоставить любой символ, кроме тех, которые указаны в списке.+
— соответствует одному или нескольким вхождениям$
— соответствует концу строкиВы можете использовать substr
и instr
для таких простых требований сопоставления с образцом, поскольку regexp
будет дорогостоящим по сравнению с комбинацией substr
и instr
.
Вы можете попробовать следующее:
substr(str,instr(str,'~',-1) + 1)
Пример:
SQL> select substr('Attachments:Attachments~Attachment1~Attachment2',
2 instr('Attachments:Attachments~Attachment1~Attachment2','~',-1) + 1)
3 from dual;
SUBSTR('ATT
-----------
Attachment2
SQL>