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

Contar lineas en archivo con UTL_FILE ORACLE

Estas en el tema de Contar lineas en archivo con UTL_FILE ORACLE en el foro de Oracle en Foros del Web. Hola He creado un archivo con UTL_FILE desde un procedimiento inicial. Posteriormente necesito validar directamente desde el archivo creado si efectivamente aun tiene la misma ...
  #1 (permalink)  
Antiguo 12/05/2011, 12:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta Contar lineas en archivo con UTL_FILE ORACLE

Hola

He creado un archivo con UTL_FILE desde un procedimiento inicial. Posteriormente necesito validar directamente desde el archivo creado si efectivamente aun tiene la misma cantidad de lineas, para copiarlo a otro servidor.

Quisiera saber si existe alguna funcion del paquete UTL_FILE que me permita saber la cantidad de lineas que tiene el archivo o como podria hacer el conteo.

Gracias

Última edición por SONOFGOD; 12/05/2011 a las 12:33 Razón: Ampliar
  #2 (permalink)  
Antiguo 12/05/2011, 16:15
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Respuesta: Contar lineas en archivo con UTL_FILE ORACLE

Piénsalo de esta manera, ¿qué crees que puede salir mal?.

Como no dices mucho sobre el procedimiento, vamos a suponer que creas un fichero a partir de los datos de una tabla, por ejemplo:

Código:
create or replace procedure write_file (
  directory       in varchar2,
  filename   in varchar2)
is
    file  utl_file.file_type;
begin
    file := utl_file.fopen (directory,filename, 'W');
    for rec in (select d from t1) loop
     begin
       utl_file.put_line (file, rec.d);
       exception
        when others then 
        dbms_output.put_line('Error en la escritura de la línea ' || rec.d);
      end;
    end loop;
    utl_file.fclose(file);
  exception
    when others then 
    dbms_output.put_line(sqlerrm);
end;
/
Las diferentes funciones de utl_file (en este ejemplo, fopen, put_line y fclose) tienen sus propias excepciones que te van a informar si algo va mal, por lo que puedes hacer un "catch" en la apertura del fichero, en cada línea que se escribe y en el cierre, e informar del resultado desde dentro de la base de datos, todo esto le quita el sentido a una validación adicional del proceso contando la cantidad de líneas del fichero resultante.

De todos modos, en respuesta a la pregunta, la única forma de saber cuantas líneas tiene un fichero con el paquete utl_file es abrirlo, recorrerlo y contar.

Saludos
  #3 (permalink)  
Antiguo 12/05/2011, 22:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Contar lineas en archivo con UTL_FILE ORACLE

Gracias por tu recomendacion

Efectivamente en el momento de crear el archivo realizo las validaciones respectivas, lo que sucede es que durante el proceso de la ejecucion del programa el archivo puede modificarse y finalmente debo verificar si conserva su tamaño.

Finalmente aplique lo que dices, abrir, recorrer-contar y cerrar.

Etiquetas: contar-lineas, leer-archivos, utl_file
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 22:17.