Главная > oracle, SQL > Замена N-ного символа в строке


Замена N-ного символа в строке

Для замены N-ного символа в строке, можно обойтись и без SUBSTR — использовать REGEXP_REPLACE.

select regexp_replace('208010100000','.','X', 5, 1) as res from dual
union all
select regexp_replace('208010100000','.','X', 2, 1) as res from dual;

RES
------------
2080X0100000
2X8010100000

Похожие записи:

  1. 5 Октябрь 2015 в 16:39 | #1

    А параметр ‘.’ (точка) что значит? Ну и для порядка последний параметр (который в примере всегда=1) что значит?

  2. Умничка
    21 Февраль 2017 в 16:49 | #2

    @Дмитрий
    Точка в регулярном выражении — любой символ. Таким образом,

     regexp_replace('208010100000','.','X') 

    будет означать замену всех символов в выражении на ‘X’, а последующие две цифры означают, что замена начнется с пятого символа и заменен будет всего один символ.

  1. Пока что нет уведомлений.