不可轻言放弃,否则对不起自己!

发布新日志

  • perl sprintf

    2012-12-17 14:34:12

    #!/usr/bin/perl
    use warnings;
    use strict;
    #说明
    $~="DESC";
    write;
    format DESC=
    ================================================================================
       
        说明:
             本脚本完成Sms_UserTable表数据构造与导入(SqlLoad)。
        
    ================================================================================
    .
     
    print "\n请输入上限(只能是正整数):\n";
    my $num=<STDIN>;
    chomp($num);
    if($num gt 0  and $num ne "")
    {
        open(FILE,">Sms_UserTable.txt") || die "Can not open file,$!";
        for(my $i=0;$i<$num;$i++)
        {
            my $MSISDN=sprintf "86131%08d",rand(99999999);
            my $sServices="1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
            print FILE "$MSISDN\,";
            print FILE "$sServices\n";
        }
        close(FILE);
       
        #导入数据
        &load_data;
       
    }
    else
    {
        print "\n上限输入非法,退出!\n\n";
        exit;
    }
    sub load_data
    {
        if(-f "Sms_UserTable.txt")
        {
            print "\n拼接文件\n";
           
            open(CTL,">Sms_UserTable.ctl") || die "";
            
                print CTL "load data\n";
                print CTL "infile 'Sms_UserTable.txt'\n";
                print CTL "Append\n";
                print CTL "into table Sms_UserTable\n";
                print CTL "fields terminated by \",\"\n";
                print CTL "\(MSISDN, sServices\)\n";
            close(CTL);
           
            #判断文件是否存在
            if(-f "Sms_UserTable.ctl")
            {
               #执行sqlldr:
              
               print "\n请输入数据库用户名:\n";
               my $user=<STDIN>;
               chomp($user);
              
               if($user eq "" || $user eq "\n")
               {
                   print "\n输入数据库用户名非法,退出!\n\n";
                   exit;
               }
              
               print "\n请输入数据库用户名对应密码:\n";
               my $pass=<STDIN>;
               chomp($pass);
       
               if($pass eq "" || $pass eq "\n")
               {
                   print "\n输入数据库用户名对应口令非法,退出!\n\n";
                   exit;
               }
              
               print "\n请输入数据库别名:\n";
               my $sid=<STDIN>;
               chomp($sid);      
              
               if($sid eq "" || $sid eq "\n")
               {
                   print "\n输入数据库用户别名非法,退出!\n\n";
                   exit;
               }
              
               print "\n开始导入数据\n";
               #sqlldr user/pwd@sid control="insert.ctl"
               system("sqlldr $user\/$pass\@$sid control=\"Sms_UserTable.ctl\" readsize=9999999 rows=100000 bindsize=9999999 direct=y");
            }
            else
            {
                print "\n拼接控制文件不存在,退出!\n\n";
                exit;
            }
           
       
        }
        else
        {
            print "\n[Sms_UserTable.txt]文件不存在,退出!\n\n";
            exit;
        }
    }
  • 脚本usage

    2011-07-28 16:02:11

    use Getopt::Std;
    #使用方法
    getopts("su");
    if (!($opt_u || $opt_s))
    {
       print "\n【使用方法】\n";
       print "\nperl exp_sysparm_tab.plx \n \n            选项: -u  -s \n\n\t           -u: upgrade  表示导出升级后版本相关信息\n\n\t  
            -s: setup    表示导出安装目标版本相关信息\n \n \n";
    }
    if($opt_u)
    {}
    elsif($opt_s)
    {}
    else
    {}
  • perform_iops-2

    2011-06-02 09:25:31

  • perform_iops-1

    2011-06-02 09:25:07

  • perform-5.pl

    2011-06-02 09:22:48

  • perform-4.pl

    2011-06-02 09:22:20

  • perform-3.pl

    2011-06-02 09:21:01

  • perform-2.pl

    2011-05-30 20:25:55

  • perform-1/pl

    2011-05-30 20:23:57

  • perl 随机数

    2011-04-27 17:47:51

    #!/usr/bin/perl -w
    use strict 'vars';

    my $num=int(rand(100))+1;
    print "\n$num\n";

    my $n=sprintf "%02d",rand(10);
    print "\n$n\n";

  • perl 常用命令

    2011-04-23 16:43:51

    1.-d判断目录是否存在

    (-d "EMV{MMS_HOME}/test") || die "ERROR! EMV{MMS_HOME}/test,$!\n";

     

    2.进入目录

    chdir "$ENV{MMS_HOME}";

     

    3.目录不存在,创建

    unless (-d "test")
    {
      mkdir("test",0777) || die "Mkidr dircctory test failed.\n";
    }

     

    4.获取系统当前时间

    my ($sec,$min,$hour,$day,$month,$year)= localtime(time());
    $year+=1900;
    $month=sprintf("%02d",$month+1);
    $day=sprintf("%02d",$day);
    $hour=sprintf("%02d",$hour);
    $min=sprintf("%02d",$min);
    $sec=sprintf("%02d",$sec);
    my $daytime = "$year/$month/$day/$hour/$min/$sec";
    print "本机当前时间是:$daytime\n";

     

    5.文件句柄

    open(SQLPLUS, "|sqlplus -S $USER/$USERPASS\@$SID >/dev/null") || die "Execute sqlplus error!\n";
      print SQLPLUS "set feedback off\nset sqlnumber off\n";
      print SQLPLUS "set colsep \"\;\"\n";
      print SQLPLUS "set pagesize 0\nset linesize 200\n";
      print SQLPLUS "set trimspool off\n";
      print SQLPLUS "set sqlblanklines off\n";
      print SQLPLUS "spool mm7vaspsuccmoat.txt\n";  #导出文件到mm7vaspsuccmoat.txt
      print SQLPLUS "select VASP,sum(CSTJCS) as CSTJCS,sum(CGTJCS) as CGTJCS,sum(CSTJLL) as CSTJLL,sum(CGTJLL) as CGTJLL,sum(CSXFFSBGCS) as CSXFFSBGCS,sum(CGFSFSBGCS) as CGFSFSBGCS,sum(CSSDYDBGCS) as CSSDYDBGCS,sum(CGSDYDBGCS) as CGSDYDBGCS,sum(CSXFCS) as CSXFCS,sum(CGXFCS) as CGXFCS,sum(CSXFLL) as CSXFLL,sum(CGXFLL) as CGXFLL from RPT_MM7_VASPSUCC where SFLAG=0 group by VASP order by  VASP;\n";
      print SQLPLUS "spool off\n";
      close(SQLPLUS) || die "Execute sql error!\n";

Open Toolbar