Oracle - problema cono replace

 
Vista:

problema cono replace

Publicado por diego (1 intervención) el 12/11/2013 13:57:39
tengo un problema tengo que hacer un replace a varios datos de una columna el problema es que no se como hacerlo pues solo necesito cambiar una parte de la palabra y otra no tocarla, osea tener palabras reservadas, las cuales serían zona, eficaz y cobranza.

en todos los caso se requiere borrar solo la letra "z" ej:

tengo zonazsur, debería quedar como zonasur

tengo cobranzazzeliminar, debería quedar como cobranzaeliminar.

esto no se como hacerlo espero me puedan ayudar.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema cono replace

Publicado por luis pablo (235 intervenciones) el 12/11/2013 16:08:57
Hola si dices :
---------------------------------------------------
en todos los caso se requiere borrar solo la letra "z" ej:

tengo zonazsur, debería quedar como zonasur

tengo cobranzazzeliminar, debería quedar como cobranzaeliminar.

---------------------------------------------------
Si solo vas a eliminar la letra "z" :

Para cobranzazzeliminar debería quedar cobranaeliminar


Confirmas, por que tu ejemplo no es muy claro .

Saludos

Luis Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema cono replace

Publicado por miguel (8 intervenciones) el 13/11/2013 12:19:48
Hola,
Podrias crear una tabla para almacenar las palabras a reemplazar

Select 'zonazsur' as palOriginal,
'zonasur' as palNueva
into par_reservadas

y luego hacer el update,
Update tabla1 set
zona=palNueva
from tabla1 inner join
par_reservadas r
where r.palOriginal=zona



eso,
Ahora si lo q.necesitas es reemplazar siempre la secuencia 'az' vasta con
update tabla1 set
zona=replace(zona,'az','a')

No si entendi bien tu pregunta, pero eso seria,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema cono replace

Publicado por Juan Villaorduña (9 intervenciones) el 14/11/2013 16:47:43
Hola amigo, esto te ayudará:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
DECLARE
   v_palabrareserv1       CHAR (8)       := 'cobranza';
   v_palabrareserv2       CHAR (4)       := 'zona';
   v_palabrareserv3       CHAR (6)       := 'eficaz';
   v_palabranopermitida   CHAR (1)       := 'z';
   v_palabraevaluar       VARCHAR2 (100) := 'cobranzazzeliminar';
   v_nuevapalabra         VARCHAR2 (100);
BEGIN
   --
   v_nuevapalabra := REPLACE (v_palabraevaluar, v_palabrareserv1, 'A1T');
   v_nuevapalabra := REPLACE (v_nuevapalabra, v_palabrareserv2, 'A2T');
   v_nuevapalabra := REPLACE (v_nuevapalabra, v_palabrareserv3, 'A3T');
   v_nuevapalabra := REPLACE (v_nuevapalabra, v_palabranopermitida, '');
 
   IF INSTR (v_nuevapalabra, 'A1T') != 0
   THEN
      v_nuevapalabra := REPLACE (v_nuevapalabra, 'A1T', v_palabrareserv1);
   ELSIF INSTR (v_nuevapalabra, 'A2T') != 0
   THEN
      v_nuevapalabra := REPLACE (v_nuevapalabra, 'A2T', v_palabrareserv2);
   ELSIF INSTR (v_nuevapalabra, 'A3T') != 0
   THEN
      v_nuevapalabra := REPLACE (v_nuevapalabra, 'A3T', v_palabrareserv3);
   END IF;
 
   DBMS_OUTPUT.put_line ('CAMBIO REALIZADO: ' || v_nuevapalabra);
END;


La variable v_palabraevaluar es la palabra que quieras poner, por ejemplo "zonamuertazzzz", quedará como "zonamuerta". Espero te sirva, me divirtio unos minutos jajaja. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar