使用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
)
但是,您需要为每个文件使用不同的控制文件。这可以通过使用 shell 脚本动态地制作控制文件来完成。示例 shell 脚本可以是:
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