Если Я следовал за вами правильно, вы можете использовать regexp_replace()
дважды:
select regexp_replace(regexp_replace(col, '[a-z]', 'C', 1, 0, 'i'), '\d', 'N') newcol from t
Внутренний вызов превращает все символы алфавита в 'C'
, тогда внешний вызов превращает цифры на 'N'
.
Демонстрация на DB Fiddle :
with t as (select 'PA12345' col from dual)
select regexp_replace(regexp_replace(col, '[a-z]', 'C', 1, 0, 'i'), '\d', 'N') newcol from t
| NEWCOL |
| :------ |
| CCNNNNN |
Обратите внимание, что это не проверка , а точнее транскодирование. Если вы хотите проверить, соответствует ли формат строки предопределенному шаблону, то вам лучше использовать regexp_like()
:
regexp_like(col, '[a-z]{2}\d{5}', 'i')