Вам настоятельно рекомендуется использовать regexp_replace
. Он короче и не так сложен, как кажется на первый взгляд:
SELECT REGEXP_REPLACE( S, '^(.{1}).', '\1' )
FROM (
SELECT 'PANCAKES'
FROM DUAL
)
Шаблон ^(.{1}).
ищет в начале строки (обозначается ^
) ровно один (.{1}
) печатных или обновляемых символов, а затем снова только один из этих символов (.
). «Точная» часть закрыта в скобках, поэтому на нее можно ссылаться как на группу соответствия по номеру в аргументе третьей функции (\1
). Таким образом, вся подстрока, соответствующая регулярному выражению, равна 'PA', но мы ссылаемся только на 'P'. Остальная часть строки остается нетронутой. Таким образом, результат «PNCAKES».
Если вы хотите удалить N-й символ из строки, просто замените номер «один» в шаблоне (используется для удаления второго символа) значением N-1.
Для программиста или любого ИТ-специалиста полезно ознакомиться с регулярными выражениями, поскольку это дает ему или ей много возможностей для работы с текстовыми записями.