Используйте SQL * Loader , чтобы получить файлы в таблицу. Предполагая, что у вас есть таблица, похожая на:
create table FLOG
(
FILENAME varchar2(1000)
,NUM varchar2(1000)
,DATA varchar2(1000)
);
Тогда вы можете использовать следующий контрольный файл:
LOAD DATA
INFILE 'f1.log' "str ';'"
truncate INTO TABLE flog
fields terminated by '=' TRAILING NULLCOLS
(
filename constant 'f1'
,num char
,data char
)
Однако для каждого файла вам потребуется отдельный файл управления. Это может быть сделано путем динамического создания управляющего файла с использованием сценария оболочки. Пример сценария оболочки может быть:
cat >flog.ctl <<_EOF
LOAD DATA
INFILE '$1.log' "str ';'"
APPEND INTO TABLE flog
fields terminated by '=' TRAILING NULLCOLS
(
filename constant '$1'
,num char
,data char
)
_EOF
sqlldr <username>/<password>@<instance> control=flog.ctl data=$1.log
Сохраненный как flog.sh
, он может быть запущен как:
./flog.sh f1
./flog.sh f2