# ----------------------------------------------------------------------------------------
# Func : fetch dbs's sql
# ----------------------------------------------------------------------------------------
sub do_fetch{
my @dbs = split(',',$dbstr);
my %dbhash;
my $spfir = ',';
my $spsec = ';';
my $m_srcfile = $srcfile;
my $sh;
# get head,tail info;
my $headendpos=1;
$sh = qq{grep -n '/\\\*!40101 SET SQL_MODE=\@OLD_SQL_MODE \\\*/;' $m_srcfile};
my $res = `$sh`; chomp($res);
my $tailbgpos = `echo '$res' | cut -d : -f 1`; chomp($tailbgpos);
# get all db pos
$sh = qq{grep -n -i \'^-- Current Database: `\' $m_srcfile };
open FILE_ALLDB, " $sh | " or die "can't do shell:$sh";
my ($bgpos,$endpos,$curpos,$curdb,$lastdb,$lastpos);
my $i=1;
while (my $line = ){
# line format "no:USE `dbname`"
chomp($line);
my @arline = split(':',$line);
$curpos = `echo '$line' | awk -F: \'{print \$1}\'`;chomp($curpos);
$curdb = `echo '$line' | awk -F\\\` \'{print \$2}\'`; chomp($curdb);
# first db
if ($i > 1){
$endpos = $curpos - 1;
$dbhash{$lastdb} .= "$lastpos$spfir$endpos$spsec";
}elsif ($i == 1){
$headendpos = $curpos - 1;
}
# do fetch
my ($posstrdb, $posstr, @posardb, @posar);
my $outfile;
#foreach my $db (keys %dbhash){
foreach my $db (@dbs){
# fetch one db sql
print "============= start fetch $db sqls\n";
my $posstrdb = $dbhash{$db};
if (defined($posstrdb)){
#print "==== $db:$posstrdb\n";
$outfile = qq{$output_path$db.sql};
# head sql
$sh = qq{sed -n '1,$headendpos p' $m_srcfile > $outfile};
`$sh`;