miércoles, 17 de febrero de 2010

Obtener ficheros de un directorio y trabajar con ellos

Buenas,

Hay veces que necesitas obtener recurrentemente el contenido de un directorio para trabajar con los ficheros, aqui pongo un de las múltiples opciones posibles.

Yo he utilizado una tabla externa pues es recurrente y por que además me da mucha más flexibilidad para buscar más tarde sobre el contenido.

El contenido de lsora.sh es solamente el ls del directorio, si queremos obtener más información solo tenemos que utilizar las opciones de ls para tener esta info. Para poder verla en Oracle entonces añadir los nuevos campos a la tabla externa.

create or replace directory dir_ls as '/tmp';
create table contenido_directorio (fichero varchar2(500)) organization external (default directory dir_ls location('rdo.txt'));

begin
dbms_scheduler.create_job(job_name=>'LS',job_type=>'EXECUTABLE',job_action=>'/home/sh/lsora.sh',start_date=> systimestamp,enabled=>true);
for registro_cd in (select fichero from contenido_directorio)
loop
dbms_output.put_line(registro_cd.fichero);
end loop;
end;
/