my @db = qw(foo bar);
foreach my $db(@db)
{
mkdir $db unless -d $db;
foreach(split /\n/, `sqlcmd -S server -U id -P password -d $db -Q "SELECT name FROM sysobjects WHERE xtype='U'"`)
{
next if /^name\s+$/ || /^-+$/ || /^\(/;
if(/^([^\s]+)/)
{
`bcp $db.dbo.$1 out $db\\$1.csv -S server -U id -P password -c -t,`;
}
}
}
while(<*.csv>)
{
/(.*)\.csv$/;
open CSV, $_;
open FIX, ">$1.txt";
my @csv = <CSV>;
my @max;
foreach(@csv)
{
my $i = 0;
foreach(split /,/)
{
my $len = length;
$max[$i] ||= 0;
$max[$i] = ($max[$i] < $len ? $len : $max[$i]);
$i++;
}
}
foreach(sort{$a cmp $b} @csv)
{
my $i = 0;
foreach(split /,/)
{
s/\x00/ /;
my $fmt = sprintf '%% %ds', $max[$i]+1;
print FIX sprintf $fmt, $_;
$i++;
}
}
}