SUBSTR
может сделать это.
Ваш второй пример короче первого, поэтому я немного изменил данные выборки; включенный y
в конце, чтобы подчеркнуть 0230
(то есть последние 4 символа). Третий пример не следует изменять вообще, так как он не заканчивается на 0230
(это то, что делает where
).
SQL> with test (col) as
2 (select '2545415632002222y0230' from dual union all
3 select 'x111545615602222y0230' from dual union all
4 select '2412412412412412y1234' from dual
5 )
6 select col,
7 substr(col, 1, length(col) - 2) || '28' result
8 from test
9 where substr(col, -4) = '0230';
COL
---------------------
RESULT
----------------------------------------------------------------
2545415632002222y0230
2545415632002222y0228
x111545615602222y0230
x111545615602222y0228
SQL>
Когда вы обновляете столбец, тогда :
SQL> create table test as
2 (select '2545415632002222y0230' col from dual union all
3 select 'x111545615602222y0230' from dual union all
4 select '2412412412412412y1234' from dual
5 );
Table created.
SQL> update test set
2 col = substr(col, 1, length(col) - 2) || '28'
3 where substr(col, -4) = '0230';
2 rows updated.
SQL> select * From test;
COL
---------------------
2545415632002222y0228
x111545615602222y0228
2412412412412412y1234
SQL>