Ver Mensaje Individual
  #16 (permalink)  
Antiguo 14/05/2009, 13:47
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Listar Un Directorio

Con UTL_FILE podrías lograrlo, pero tengo la impresión de que por el tamaño de los archivos vas a estar un buen rato esperando a que el proceso termine, con este paquete solo puedes recorrer los archivos línea por línea y por cada una, hacer un INSERT.

Una opción puede ser tablas externas, que están basadas en el motor de Data Pump o SQL*Loader, con esto, el proceso de carga va a ser mucho más rápido, la desventaja es que tienes que conocer de antemano cuales y cuantos son los ficheros, ya que la ruta y nombre de cada uno compone la sentencia SQL que crea la tabla externa, por ejemplo

Código:
archivo_de_datos.csv
001,Nombre,Apellido,Telefono,Edad

SQL> create or replace directory data_dir
  2  as 'path_al_directorio_de_ficheros';

Directory created.

SQL> create table t1
  2      ( id varchar2(3),
  3        nombre varchar2(50),
  4        apellido varchar2(50),
  5        telefono varchar2(9),
  6        edad number(10)
  7        
  8      )
  9      organization external
 10      ( default directory data_dir
 11        access parameters
 12        ( records delimited by newline
 13          fields terminated by ','
 14        )
 15        location ('archivo_de_datos.csv')  
 16    )
Por último, se me ocurre cargar cada archivo como un campo BFILE o BLOB, de esta manera te queda una sola tabla que contiene un archivo por registro, y a partir de ahí procesarlos según lo necesites, para esto revista el método LOADFROMFILE del package DBMS_LOB.

Saludos