DB2数据库数据导出的shell脚本谁会写?

haianb604 2009-09-01 04:40:48
问题是这样的,我的机器是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代码,使它能正确执行

...全文
539 1 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hexing_x 2011-03-17
我也遇上这个问题了···
回复
Element 2010-11-19
都不会啊?我在求解答!
回复
haianb604 2009-09-01
自己顶一下,为什么没人回答啊?
回复
发动态
发帖子
UNIX文化
创建于2007-08-27

2152

社区成员

Linux/Unix社区 UNIX文化
申请成为版主
社区公告
暂无公告