Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/05/2011, 16:15
Avatar de matanga
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