Remplazo характер PL/SQL

Я нуждаюсь remplazar в символе в особенности одной каждый в oracle.

Например:

cadena= '12121113'

и то, в чем я нуждаюсь, состоит в том, чтобы менять "1" на "2", но только "1", что находится в положении 3.

и возвращать мне измененный результат.

Как результат был бы должен останься '12221113'.

Я надеюсь объясниться хорошо.

3
задан 08.03.2016, 23:19
3 ответа

С этой консультацией, которая будет видна в третьей "я вступаю в брак, когда" стоимость равна 1.

SUBSTR functions

Если результат истинный, тогда прилагается первая часть субцепи, после когда приложена часть, которая изменится и потом будет приложена концом Вашего string.

Если он будет фальшивым, тогда он возвратит себе истинную стоимость.

select 
case when substr('12121113', 3, 1) = 1
  then substr('12121113', 1, 2) || replace(substr('12121113', 3, 1), '1', '2') || substr('12121113', 4)
  else '12121113'
end as modified
from dual
1
ответ дан 24.11.2019, 14:45

как альтернатива оставила тебе следующего cГіdigo. ты можешь использовать instr

 instr('12121113','1',2)

и консультация была бы следующей

select substr('12121113',1,instr('12121113','1',2)-1)||
    replace(substr('12121113',instr('12121113','1',2),1),'1','2')||
    substr('12121113',instr('12121113','1',2)+1,length(12121113))
from dual
0
ответ дан 24.11.2019, 14:45
  • 1
    Проблема этого select Osmar - что если третий cará cter 2, тогда эта funció n замени следующий 1 и только хочется заменять в posició n 3 из string. – Christian Salas 31.01.2019, 22:25

Рубен

Эта форма состоит mГЎs короткая в том, что предыдущие, но этот ключ в регулярных выражениях, я уверен, что должна быть одна soluciГіn aГєn mГЎs рубка с одной expresiГіn регулировать. Последованные

SELECT 
SUBSTR(REGEXP_REPLACE('12121113','1','2',3,1),1,3) || SUBSTR('12121113',4)
FROM DUAL;

: 12221113

0
ответ дан 24.11.2019, 14:45