0

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() ){ print ("$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.....**
4

1 に答える 1

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: $!";
于 2012-05-23T14:49:16.867 に答える