informix批量数据文件导入库sh程序

来源:互联网 发布:肺 三维重建 软件 编辑:程序博客网 时间:2024/05/17 02:46

此sh主要是针对Informix数据库中对于多个数据库数据文件的处理,注意其中的truncate语句,如果每个数据文件就是一个数据表,那么truncate table ${TABLE};就可以加到database ${DATABASE}后面.

此段sh程序在RedHat Linux AS4 上测试通过,应该适应于大多数UNIX或Linux操作系统.

 

#!/bin/skh

if [ $# != 2 ]
then
   echo 
"Usage : $0 dirname errlogfilename "
   
exit 1
fi

DIRNAME
=$1
LOGFILE
=$2

echo 
/dev/null > ${LOGFILE}

DATABASE
=migdbs

LOAD(  )
{
#truncate table ${TABLE};
dbaccess <<!  2>/tmp/tmp121213
   database ${DATABASE};
   load from ${FILENAME} insert into ${TABLE};
!

if [ $? != 0 ]
then 
   echo 
"Load table[${TABLE}] file[${FILENAME}] error." >> ${LOGFILE}
   
return 1;
fi 

echo `cat 
/tmp/tmp121213 | grep "row(s) loaded"`

}

cd ${DIRNAME}

TABLELIST
=`ls *.txt`
for FILENAME in $TABLELIST
{
    
#LEN=`echo $ii |awk '{print length( $0 )}'`   
    LEN=`echo ${FILENAME} |wc -c`   
    END
=`expr ${LEN} - 10 `
    TABLE
=t_`echo ${FILENAME} | cut -c1-${END}`
    echo 正在导入表[${TABLE}] 文件为[${FILENAME}]
    LOAD migdbs ${TABLE} ${FILENAME}  
    echo 
""
}