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

Leer caracteres con UTL_FILE

Estas en el tema de Leer caracteres con UTL_FILE en el foro de Oracle en Foros del Web. Buenos días: Estoy utilizando la utileria UTL_FILE para leer desde un fichero, mi pregunto es puedo leer caracter por caracter o solo puedo leer la ...
  #1 (permalink)  
Antiguo 17/08/2009, 10:09
 
Fecha de Ingreso: diciembre-2008
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Leer caracteres con UTL_FILE

Buenos días:

Estoy utilizando la utileria UTL_FILE para leer desde un fichero, mi pregunto es puedo leer caracter por caracter o solo puedo leer la línea completa?

Agradezco su atención y quedo en espera de su respuesta.

Saludos
  #2 (permalink)  
Antiguo 17/08/2009, 12:57
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Leer caracteres con UTL_FILE

Tienes que leer la linea completa.
Una vez leida, hazte un bucle para ir leyendo con la funcion SUBSTR caracter por caracter de la linea que has recuperado.
  #3 (permalink)  
Antiguo 17/08/2009, 17:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Respuesta: Leer caracteres con UTL_FILE

Muchas gracia, espero que me puedas ayudar con este codigo :

create or replace
PROCEDURE P_CARGA_ARCHIVO(
pnameFile OUT NOCOPY VARCHAR2
)
IS
TYPE varray_type IS VARRAY(200) OF VARCHAR2(300);
vregistros varray_type;
vFile UTL_FILE.FILE_TYPE;
vline VARCHAR2(300);
counter INTEGER := 1;
BEGIN
vFile := UTL_FILE.FOPEN('DIR_CARGAUSR', 'perfiles140809.txt', 'R');
vregistros := varray_type();

LOOP
BEGIN
UTL_FILE.GET_LINE(vFile, vline);
vregistros(counter) := varray_type(vline); // ERROR
counter := counter + 1;
END;
END LOOP;
END;

El error que estoy obteniendo es este:
Error(18,34): PLS-00382: expression is of wrong type

Espero que alguien me pueda ayudar con esto, saludos
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 18:50.