Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Comom recorrer una cadena en oracle

Estas en el tema de Comom recorrer una cadena en oracle en el foro de Oracle en Foros del Web. srs: como se recorre una cadena en oracle ejemplo declare v_cadena varchar(2000):='nombre,apellido'; begin end; como recorreria esa cadena. Saludos cordiales....
  #1 (permalink)  
Antiguo 27/01/2014, 11:19
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Comom recorrer una cadena en oracle

srs: como se recorre una cadena en oracle ejemplo
declare v_cadena varchar(2000):='nombre,apellido';
begin

end;

como recorreria esa cadena.

Saludos cordiales.
  #2 (permalink)  
Antiguo 27/01/2014, 12:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Comom recorrer una cadena en oracle

con las funciones substr y length.

Algo como

Código SQL:
Ver original
  1. DECLARE
  2. cadena VARCHAR2(2000) := 'nombre,apellido';
  3. var VARCHAR2(1000);
  4. BEGIN
  5. FOR i IN 1..LENGTH(cadena) LOOP
  6.  var := substr(cadena,i,1);
  7.  dbms_output.put_line('POSICION '||i||' caracter '||var);
  8. END LOOP;
  9. END;
  10. /

Saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 29/01/2014, 16:47
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: Comom recorrer una cadena en oracle

Gracias por compartir su conocimiento
*-lo resolví de la siguiente forma
1.- creo mi tabla para registrar los valores que obtengo y asi visualizar el resultado

CREATE TABLE TB_RESULTADO (DATO VARCHAR2(500))

2.- Aquí realizo el código para recorrer mi cadena.


DECLARE vPCAMPOSIDC VARCHAR2(2000):='DESCRIPCION,PARAMETRO1';
lst_letra varchar2(1);
lst_cadena varchar2(2000);
BEGIN
FOR lin_pos IN 1..LENGTH(vPCAMPOSIDC)+1 LOOP
lst_letra:=SUBSTR(vPCAMPOSIDC,lin_pos,1);

IF lst_letra =',' or lin_pos=LENGTH(vPCAMPOSIDC)+1 THEN
dbms_output.put_line('MI PRIMERA VUELTA:='||lst_cadena);
EXECUTE IMMEDIATE 'INSERT INTO TB_RESULTADO VALUES('''||lst_cadena||''')';
lst_cadena:='';
ELSE
lst_cadena:= nvl(lst_cadena,'')||lst_letra;
END IF;
END LOOP;
END;


Nuevamente gracias por su apoyo.

Etiquetas: cadena
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:04.