从数据库查找关键数据创建话单的脚步

根据条件创建话单,如果少量的还可以手工执行,如果是数量级很大的话,手工造话单不太现实,只能通过脚本批量创建。这里分两部分一部是shell脚本,一部分是sql脚本。

生成话单的脚本:

#!/bin/bash

 

#set -x

DBSERVER=testdb01

USER=smart

PASS=smart

 

WORK_DIR=/lee

 

FILEPRE=lee_`date +'%m%d'`_

FILESUF=".dat"

DATETIME=`date +'%Y%m%d%H%M%S'`

MSG=""

 

 

CALLING_PARTY_ADDR="13060010001"

CALLED_PARTY_ADDR="13060010001"

 

CHARGE_FLOW_TYPE=0

 

CALLING_VLR_NUM=055187008

CALLING_CELLID=28069

CALLED_VLR_NUM=055187777

CALLED_CELLID=28002

MSC_ADDR=055187008

CALLDURATION=0

 

 

FILEID=1

FILENAME=${FILEPRE}${FILEID}${FILESUF}

FILESIZE=100000

BILLID=$FILESIZE

echo `date +'%Y-%m-%d %H:%M:%S'`;

sqlplus -s $USER/$PASS@$DBSERVER @$WORK_DIR/exp.sql;

rm *$FILESUF

for MSISDN in `cat ./export.txt`

do

    if [ $BILLID -eq $FILESIZE ]

    then

        BILLID=0;

        FILENAME=${FILEPRE}$((RANDOM%(1000-100)+100))_${FILEID}${FILESUF};

        FILEID=$((FILEID+1));

    fi

    BILLID=$((BILLID+1));

    CALLING_PARTY_ADDR=$MSISDN;

    CALLDURATION=$((RANDOM%1000))

    #668||8613398827625|6235715|||20100830144551|0|6235715||0||055187008|28069|||6235715|8613398827625|||||0|||055187008||20100830144551|181|0|||

    MSG="668||"$CALLING_PARTY_ADDR"|"$CALLED_PARTY_ADDR"|||"$DATETIME"|0|"$CALLED_PARTY_ADDR"||0||"$CALLING_VLR_NUM"|"$CALLING_CELLID"|"$CALLED_VLR_NUM"|"$CALLED_CELLID

    MSG=$MSG"|"$CALLING_PARTY_ADDR"|"$CALLED_PARTY_ADDR"|||||0|||"$MSC_ADDR"||"$DATETIME"|"$CALLDURATION"|0|||"

    echo $MSG>>$FILENAME

    CALLED_PARTY_ADDR=$CALLING_PARTY_ADDR;

done

echo `date +'%Y-%m-%d %H:%M:%S'`

读数据库的sql:
set newp none;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set termout off;
set trimout on;
set trimspool on;
spool ./export.txt
select msisdn from lee;
spool off;
exit;
set newp 1;
set echo on;
set feedback on;
set heading on;
set pagesize 24;
set termout on;
set trimout off;
set trimspool off;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值