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

perl sprintf

上一篇 / 下一篇  2012-12-17 14:34:12 / 个人分类:perl

#!/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";
           #sqlldruser/pwd@sidcontrol="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;
    }
}

TAG:

 

评分:0

我来说两句

Open Toolbar