#!/bin/sh
. ./public_s.sh
tdtp="zxjxhisdsspace1"; #tablespace
titp="zxjxhisidxspace1"; #index tablespace
tbnm="plat_accinfosh";
tb=$tbnm"_his";
getlogname $0;
log=$pub_result;
[ "$1" != "" ] && tbnm=$1;
pub_datatype="D";
strdate=20130101
enddate=20130228
[ "$2" != "" ] && strdate=$2;
[ "$3" != "" ] && enddate=$3;
#获取两日间数据日期
fc_getdayebtw $strdate $enddate;
days="$pub_result";
#获取两月间数据日期
pub_datatype="M";
fc_getdayebtw $strdate $enddate;
mdays=$pub_result;
tbexist="N";
pub_debug="N";
#判断是否存在表
callchktb()
{
chtb=$1;
if [ "$chtb" = "" ]
then
echo "chtb is empty !exit!";
exit;
fi;
if [ "$tbexist" = "N" ]
then
#检查表是否存在,表的格式为$tbname+his
sql="select count(1) from syscat.tables a where a.tabname=upper('$chtb')";
echo "sql is [$sql]" | tee -a $log;
db2cmd "$sql";
[ "$pub_result" = "1" ] && tbexist="Y";
echo "chtb is $chtb and pub_result [$pub_result] ";
fi;
}
#创建表
callcreate()
{
createtsql=" create table $ctbnm like $tbnm in $tdtp index in $titp";
echo "$createtsql" | tee -a $log;
db2cmd "$createtsql";
echo "$pub_result" | tee -a $log;
echo "$pub_sqlcode" | tee -a $log;
}
#插入函数
callinsert()
{
cdate=$1;
ctbnm=$2;
if [ "$cdate" = "" -o "$ctbnm" = "" ]
then
echo "cdate or ctbnm is empty" | tee -a $log;
exit;
fi;
#检查表是否存在,表的格式为$tbname+his
callchktb $ctbnm;
#echo "1........"
if [ "$tbexist" = "N" ]
then
callcreate $ctbnm;
#echo "10........"
fi;
callchktb $ctbnm;
#echo "2........"
if [ "$tbexist" = "Y" ]
then
#echo "3........"
insertsql=" insert into $ctbnm
select * from $tbnm where datadate=$cdate
and not exists ( select 1 from $ctbnm where datadate=$cdate fetch first 1 rows only)
with ur";
echo "$insertsql" | tee -a $log;
db2cmd "$insertsql" ;
echo "$pub_result" | tee -a $log;
echo "$pub_sqlcode" | tee -a $log;
fi;
detesql="delete from $tbnm where datadate=$cdate and exists ( select 1 from $ctbnm where datadate=$cdate)"
db2cmd "$detesql";
echo "$detesql" | tee -a $log;
echo "$pub_result" | tee -a $log;
echo "$pub_sqlcode" | tee -a $log;
}
#echo days is [$days]
#echo mdays is [$mdays]
#exit;
for d in $days
do
#去除每个月底数据,其他的数据插入到历史表中
for f2d in $mdays
do
[ "$d" = "$f2d" ] && continue 2;
done;
echo callinsert $d $tb;
callinsert $d $tb;
done
db2cmd "runstats on table zxjx.$tb";