DB2数据库数据导出的shell脚本谁会写?
问题是这样的,我的机器是windows xp,我用的是SSH客户端连到Unix操作系统,而通过shell脚本实现把一个远程数据库DB2里面的某些特定的表以文本文件导出Unix操作系统里;参考shell脚本如下:
filepro()
#$1=file name, add a file head and tail to a file.
{
cd /home/gwic/data/warehouse
prodate=`date +"%Y/%m/%d"`
protime=`date +"%H%M%S"`
arcname="$1 "
head="#BEGIN,$arcname,$prodate , , "
echo "$head">$HOME/data/warehouse/$1.temp
cat $1>>$1.temp
linenum=`wc -l $1|awk '{printf("%09d",$1);}'`
tail="#END ,$arcname,$prodate$protime,$linenum,0000000"
echo "$tail">>$1.temp
rm $1
mv $1.temp $1
return 0
}
username=$1
password=$2
passchk $username $password
[ $? != 0 ]&&exit 1
db2 connect to $DBNAME user $DBUSER using $DBPASSWD 1>/dev/null
if [ $? -ne 0 ]; then
echo "数据挖掘连接数据库失败!\n"
exit 1
fi
cd $HOME/data/warehouse
db2 -tvf /home/gwic/data/warehouse/export.sql 1>/dev/null
filepro GWICRTPPF.TXT
echo "完成\n"
db2 connect reset 1>/dev/null
exit 0
这段脚本大体意思是连接到DB2,然后执行export.sql的数据导出代码,export.sql的内容如下:
export to GWICRTPPF.TXT of del MODIFIED BY coldel0x09 select * from gwicrtppf
可以看到,只有一句,要导出数据的表是gwicrtppt;只用这句导出命令导出的结果是只有数据实体的,而要求是,不单只要导出来,而且在导出的GWICRTPPF.TXT 文件中还要包含头部和尾部的统计信息,分别都是只占一行,头部要加的信息是:#beginGWICRTPPF.TXT yyyy/MM/ddyyyy/MM/ddhhmmss(字母的意思是日期时分秒)+导出的数据的行数(九位,不足九位前面补0)+7个0
尾部和头部差不多:
#endGWICRTPPF.TXT yyyy/MM/ddyyyy/MM/ddhhmmss(字母的意思是日期时分秒)+导出的数据的行数(九位,不足九位前面补0)+7个0
这些头部和尾部信息室通过shell脚本来完成的,所以上面的shell脚本也能看出一些端倪,不过那段shell脚本不能运行,问题就在这,哪位高手能够帮帮我,调试出这段shell代码,使它能正确执行