Chinaunix首页 | 论坛 | 博客
  • 博客访问: 488026
  • 博文数量: 279
  • 博客积分: 4467
  • 博客等级: 上校
  • 技术积分: 2830
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-03 14:43
文章分类

全部博文(279)

文章存档

2013年(1)

2012年(39)

2011年(35)

2009年(29)

2008年(131)

2007年(44)

分类:

2008-02-13 14:10:49

#local2sql
##local2sql_direct '127.0.0.1' 'root' '123trinity' 'wdms' 'XF_FRMPOSSALEH' 'OUTBOUND_XF_FRMPOSSALEH' 1;

#!/usr/bin/perl

require '/opt/ws1/run_control.pl';
my $destip=$ARGV[0];
my $destuserid=$ARGV[1];
my $destpass=$ARGV[2];
my $destdatabase=$ARGV[3];
my $destable=$ARGV[4];
my $localtable=$ARGV[5];
my $jobid=$ARGV[6];
my $size=@ARGV;
if ( $size != 7)
{
  print "Usage: local2sql_direct.pl \n";
  exit(1);
}
if (!($jobid=~m/\d+/))
{
   print "Error: please input jobid\n";
   exit(1);
}
#my $runid=get_runid($jobid);

#my $createtime=get_datetime();

#my $record_counter=0;


my $stagedbh=DBI->connect("DBI:mysql:database=$destdatabase;host=$destip","$destuserid","$destpass",{'RaiseError'=>1, 'AutoCommit' => 0}) or die "cannot connect!\n";
$stagedbh->do("SET NAMES 'utf8'");
eval{
$stagedbh->do("use $localdatabase");
$sth=$stagedbh->prepare(qq/select * from $localtable/);
$sth->execute();
#$stagedbh->do(qq/delete from $srctable/);

$stagedbh->do("SET NAMES 'utf8'");
$field_count=$stagedbh->selectrow_array(qq/select count(*) from database_field_map where target_tables_name="$localtable"/);
#print "field_count:$field_count";

$stagedbh->do("use $destdatabase");
$insert_statement=reverte_insert($destable,$field_count);
#print "insert_statement:$insert_statement\n";

$inh=$stagedbh->prepare("$insert_statement");
#$inh=$stagedbh->prepare("insert into $destable values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

while(@row=$sth->fetchrow_array){
#sleep(10);

#print "$row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],]";

#print "start insert\n";

for (my $i=0;$i<$field_count;$i++){
push (@rows,"$row[$i]");
}
$inh->execute(@rows);
#$inh->execute($row[0],$row[1],$row[2],,$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],,$row[9],$row[10],$row[11],$row[12],$row[13],$row[14],,$row[15],$row[16]);

$record_counter++;
}
$stagedbh->commit();
};

if($@){
print "Warning: Transaction aborted:$@";
$stagedbh->rollback();
}
$sth->finish();
$inh->finish();

$stagedbh->disconnect();

阅读(378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~