Oracle构造数据(二)
    #主函数体
$time=getsystime();
open AA, ">./$tablename$time.txt"|| die "Open File Error."; 
for($j=1;$j<=$totalnum;$j++)
{    
    #随机取值范围   
    my $ballot_id = getrandnum(1,100000);              --从1 到 100000中随机取一个值
    my $option_id = getrandnum(1,10000000);            --从1 到 10000000中随机取一个值
    my $msisdn = getrandnum(13700000001,13900000001);  --从13700000001 到13900000001中随机取一个值作为手机号    
    #随机时间       
    my $ballot_time = getrandtime();              --从2010-01-01 00:00:00 到2014-12-31 23:59:59之间随机取一个时间作为ballot_time字段的值               
    #枚举类型
    my $type_id = $type_id[int rand @type_id];    --从"N1","N2","N3","N4","N5","N6","N7","N8","N9","N10","N11","N12"等数据中随机取一个枚举数据作为type_id的值    
    #随机字符取值
    if ( $j%500 == 1 ) 
    {
        $source_name = getrandchar(500);          --随机生成500个字符
    }
    my $bookname = substr($source_name, getrandnum(1,200), 5);   --从1至200位中随机取一个起始位置开始往后取5个字符作为书名
    my $charptername = substr($source_name, getrandnum(1,100), 15);  --从1至100位中随机取一个起始位置开始往后取15个字符作为章节名    
    #序列
    my $sequence_id = 10000 + $j;               --从1000开始往后递增1生成序列值                      
    printf AA "$sequence_id|$ballot_id|$option_id|$msisdn|$ballot_time|$bookname|$charptername|$type_id\n";     --输出一条记录,各字段以"|"分隔 
} 
close AA;
$escapetime=getsystime() - $time; 
print "Finish! escapetime = $escapetime s \n";  
第三步、把该脚本保存后上传至linux操作系统服务器上
第四步、进行赋权操作
chmod 777 script.sh
第五步、执行该脚本
./script.sh
第六步、找到生成的文件
第七步、编辑SQLLOAD 
vi load.ctl
LOAD DATA
INFILE 'test20100424114210.txt'    --文件名替换成生成的文件名
append
INTO TABLE us_present_record
  FIELDS TERMINATED BY '|'
  (
  sequence_id,
  ballot_id,
  option_id,
  msisdn,
  ballot_time "to_date(:ballot_time,'''yyyy-mm-dd hh24:mi:ss''')",
  bookname,
  charptername,
  type_id
  )
第八步、执行命令进行入库操作
sqlldr 用户名/密码 control=load.ctl    --load.ctl是控制文件的文件名