私はSQL Serverから1週間のデータを取り出し、別の名前のファイルにデータを書き込もうとしています。 以下のコードは機能せず、変数付きのファイルハンドラを作成する方法が見つかりません。Perlは数値変数を持つ出力ファイル名を返します
もう1つの質問は、SQLデータのサイズが大きい(1日当たり1-2ギガバイトで、テーブル全体が1年間以上)場合、この毎月のフェッチ方法は毎日のフェッチより速いということですか?
my $sqlGetEid = "select trunc(datetime, 'DD') truncdate, x, y from z
where DATETIME between TO_DATE('$dt1','YYYY-MM-DD') and TO_DATE('$dt1','YYYY-MM-DD')+7";
for ($day=1; $day<=7; $day++){
open('dayfile_$day', "> ./temp/Wireless_$day.csv");
}
while (my ($tday,$x,$y) = $curSqlEid->fetchrow_array())
{
printf {'dayfile_$tday'} ("%s,%d\n", $x,$y);
}
for ($day=1; $day<=7; $day++){
close('dayfile_$day');
}
FYI、 ' 'dayfile_ $ day'での単一引用符は、変数' $のday'の補間を防ぐことができます。それはもちろん、無効なファイルハンドルです。 – TLP