我想从SQL服务器拉1周数据,然后试图将数据写入具有不同名称的文件。 以下代码不起作用,我无法找到一种方法来创建具有变量的文件处理程序。Perl打印输出文件的名称与数量变量
另一个问题是,如果sql数据的大小很大(每天1-2 GB,整个表超过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');
}
仅供参考,以''dayfile_ $ day'单引号将防止变量'$ day'的插值。当然,它是无效的文件句柄。 – TLP