work at Asiainfo-Linkage 第一个小脚本

上一篇 / 下一篇  2011-12-17 11:01:53 / 个人分类:Shell

#!/usr/bin/sh
#产品管理,根据ANS_FIELD_4字段,向product表insert或者delete。
#ANS_FIELD_4为0时删除,为1时增加
 
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
ORA_SRC_STR=jf_28_c/jf_28_c@pstdb1
const_value=0
work_dir=$1
date_value=`sqlplus -s ${ORA_SRC_STR} <<END
   set pagesize 0 feedback off verify off heading off echo off
   select sysdate from dual;
        exit;
END`
product_manage_dir=`grep product product.cfg|awk -F '=' '{print $2}'`

#####################产品管理#################################
cd $product_manage_dir
files_count=`find ./ -name 'test*'|wc -l`
if [ $files_count -ge 1 ] 
then

ls -lrt|awk '{print $9}'|sed '/^$/d'>../file_create_time
   cat  ../file_create_time|while read row
   do
       echo "产品管理模块正在处理文件:$row"
file_name=$row
cat $file_name|while read line
          do
   
      
    
        echo $line
           Product_Id=`echo $line|awk -F ';' '{print $18}'`
           Product_Provider_Id=`echo $line|awk -F ';' '{print $19}'`
           Pricing_Plan_Id=`echo $line|awk -F ';' '{print $20}'`
           Integral_Pricing_Plan_Id=`echo $line|awk -F ';' '{print $21}'`
           Product_Family_Id=`echo $line|awk -F ';' '{print $22}'`
           Product_Name=`echo $line|awk -F ';' '{print $23}'`
           Product_Comments=`echo $line|awk -F ';' '{print $24}'`
           Product_Type=`echo $line|awk -F ';' '{print $25}'`
           Product_Classification=`echo $line|awk -F ';' '{print $26}'`
           Product_Code=`echo $line|awk -F ';' '{print $27}'`
           State=`echo $line|awk -F ';' '{print $28}'`
           Eff_Date=`echo $line|awk -F ';' '{print $29}'`
           Exp_Date=`echo $line|awk -F ';' '{print $30}'`
           ANS_FIELD_4=`echo $line|awk -F ';' '{print $31}'`
       
              
            
     if [ $ANS_FIELD_4 -ne  0 ]
              then
             
             
             
             

      
sqlplus -S ${ORA_SRC_STR} <<END
insert into product(PRODUCT_ID,PRODUCT_PROVIDER_ID,EVENT_TYPE_ID,IS_GLOBAL,PRICING_PLAN_ID,PRODUCT_FAMILY_ID,PRODUCT_NAME,PRODUCT_COMMENTS,PRODUCT_TYPE,PRODUCT_CLASSIFICATION,PRODUCT_CODE,STATE,LIFE_CYCLE_ID,REGION_CODE,ITEM_CODE,MAIN_PRODUCT_CODE,EFF_DATE,EXP_DATE,CREATE_DATE,INTEGRAL_PRICING_PLAN_ID)
values($Product_Id,$Product_Provider_Id,$const_value,'$const_value',$Pricing_Plan_Id,$Product_Family_Id,'$Product_Name','$Product_Comments','$Product_Type','$Product_Classification','$Product_Code','$State',$const_value,'$const_value','$const_value','$const_value',to_date('$Eff_Date','yyyy-mm-dd hh24:mi:ss'),to_date('$Exp_Date','yyyy-mm-dd hh24:mi:ss'),'$date_value','$const_value');
exit;
END
                                               
else 
#sqlplus -S ${ORA_SRC_STR}<<END              
#delete from product where product_id =$Product_Id;
#exit;
#END
echo '目前product进行删除操作时有外键关联,暂不进行delete操作'

fi
                                  
done
done
cd $product_manage_dir
rm * $product_manage_dir/../backup
cd ..
rm file_create_time
else
echo "没有需要处理的产品管理落地文件"
fi
 
 

##########################订购管理##############################################
cd $work_dir
./ordering_relation_manage.sh
 
 
其中order_relation_manage.sh内容如下:
#!/usr/bin/sh
#根据订购关系落地文件中的第27个字段判断
#REQ_FIELD_10订购关系操作类型0 为删除,1为增加
#在i_user_sprom表中insert或delete相应的记录

#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
#export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
ORA_SRC_STR=zk_28_c/zk_28_c@pstdb1
###############order_relation_dir=$1
const_value=0
date_value=`sqlplus -s ${ORA_SRC_STR} <<END
   set pagesize 0 feedback off verify off heading off echo off
   select sysdate from dual;
        exit;
EN`D
order_relation_dir=`grep orders product.cfg|awk -F '=' '{print $2}'`
#####################订购管理#################################
cd $order_relation_dir
files_count=`find ./ -name 'test*'|wc -l`
if [ $files_count -ge 1 ] 
then

ls -lrt|awk '{print $9}'|sed '/^$/d'>../ordering_file
   cat  ../ordering_file|while read row
   do
       echo "订购管理模块正在处理文件:$row"
file_name=$row
cat $file_name|while read line
          do
   
      
    
        echo $line
           SPROM_ID=`echo $line|awk -F ';' '{print $20}'`
           SERV_ID=`echo $line|awk -F ';' '{print $21}'`
           BEGIN_DATE=`echo $line|awk -F ';' '{print $24}'`
           VALID_DATE=`echo $line|awk -F ';' '{print $25}'`
           EXPIRE_DATE=`echo $line|awk -F ';' '{print $26}'`
           action_value=`echo $line|awk -F ';' '{print $27}`
       
              
            
     if [ $action_value -ne  0 ]
              then
             
             
             
             

      
sqlplus -S ${ORA_SRC_STR} <<END
insert into i_user_sprom(SERV_ID,SERVICE_ID,REGION_CODE,SPROM_TYPE,SPROM_ID,BUSI_TYPE,SPROM_PRIOR,SPROM_PARA,PAY_MODE,PROPERTY,BEGIN_DATE,VALID_DATE,EXPIRE_DATE,SID,SO_NBR,OPER_TYPE,MAX_PROM,REMARK,SO_ID,PLAN_ID,REFERENCE_OBJECT,RESULT_OBJECT) values($SERV_ID,$const_value,$const_value,$const_value,$SPROM_ID,$const_value,$const_value,$const_value,'$const_value',$const_value,to_date('$BEGIN_DATE','yyyy-mm-dd hh24:mi:ss'),to_date('$VALID_DATE','yyyy-mm-dd hh24:mi:ss'),to_date('$EXPIRE_DATE','yyyy-mm-dd hh24:mi:ss'),$const_value,$const_value,$const_value,$const_value,'$const_value',$const_value,$const_value,'$const_value','$const_value');
exit;
END
                                               
else 
echo '目前i_user_sprom表进行删除操作时有外键关联,暂不进行delete操作'

fi
                                  
done
done
cd $order_relation_dir
mv * $order_relation_dir/../
cd ..
rm ordering_file
else
echo "没有需要处理的订购管理落地文件"
fi
 

TAG:

 

评分:0

我来说两句

Open Toolbar