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

Separar un campo de tipo VARCHAR2

Estas en el tema de Separar un campo de tipo VARCHAR2 en el foro de Oracle en Foros del Web. Hola, quisiera saber cómo puedo parsear o separar un campo de tipo "varchar2". Es decir, si recibo un parametro el cual es un varchar2(4000) y ...
  #1 (permalink)  
Antiguo 29/01/2008, 14:04
 
Fecha de Ingreso: enero-2008
Mensajes: 17
Antigüedad: 16 años, 11 meses
Puntos: 0
Exclamación Separar un campo de tipo VARCHAR2

Hola, quisiera saber cómo puedo parsear o separar un campo de tipo "varchar2". Es decir, si recibo un parametro el cual es un varchar2(4000) y este contiene muchos parametros dentro, cómo creo un procedimiento u otra cosa para poder separalos???'



Su ayuda seria de gra ayuda.

  #2 (permalink)  
Antiguo 30/01/2008, 02:54
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 9 meses
Puntos: 7
Re: Separar un campo de tipo VARCHAR2

mmm creo que lo que quieres hacer se parece mucho a algo que hago para leer una cadena separada por tabs, haber si me puedo explicar (y se ve bien)

Código:
v_variable1  := trim(substr(retrieved_buffer, 1, instr(retrieved_buffer, chr(09)) - 1));
      v_variable2  := trim(substr(retrieved_buffer, instr(retrieved_buffer, chr(09), 1, 1) +1, instr(retrieved_buffer, chr(09), 1,2)  - instr(retrieved_buffer, chr(09), 1, 1)-1));
      v_variable3  := trim(substr(retrieved_buffer, instr(retrieved_buffer, chr(09), 1, 2) +1, instr(retrieved_buffer, chr(09), 1,3)  - instr(retrieved_buffer, chr(09), 1, 2)-1));
por supuesto "retrieved_buffer" es el string

al final en v_variable1 queda el contenido entre el primer caracter y la primera aparicion de un tab (chr(09))
en v_variable2 queda el contenido entre la primera aparicion de un tab y la segunda aparicion de un tab

y asi sucesivamente, tal vez solo modificandolo para que sea la primera aparicion de un "?" y un "=" para lo que necesitas quedaria
__________________
Blogzote.com :-) Mi blog
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:50.