如何将Oracle SQL查询结果重定向到驱动器上的外部CSV文件,同时将它们打印到perl的屏幕上
这是我打算做的事情
my $dbh = DBI->connect('dbi:ODBC:Test2', 'XXX', 'XXXX') || die ("Connection Failed \n");
$sql="select a,b from xxx";
my $sth = $dbh->prepare($sql);
$sth->execute();
my $dat;
while($ dat = $ sth-> fetchrow_hashref()){ 打印(“$ dat-> {a}”,print(“$ dat-> {b}” * 在这里我得到的结果在屏幕上 }
**My main challenge is to get the results into a csv file on my local disk -- Any help would be appreciated.....**
答案 0 :(得分:1)
我会使用CPAN模块 Text :: CSV 。该模块将处理所有CSV特定处理(例如引用)。
use Text::CSV;
my $csv = Text::CSV->new ( { binary => 1 } ) # should set binary attribute.
or die "Cannot use CSV: ".Text::CSV->error_diag ();
open $fh, ">:encoding(utf8)", "my.csv";
。 。
while( $dat = $sth->fetchrow_hashref() ){
print "$dat->{a} $dat->{b}\n";
$csv->print ($fh, [ $dat->{a}, $dat->{b} ]);
}
。 。
close $fh or die "Failed to write CSV: $!";