【发布时间】:2012-05-08 18:25:44
【问题描述】:
我正在尝试从 sql server 中提取 1 周的数据,然后尝试将数据写入具有不同名称的文件中。 以下代码不起作用,我找不到使用变量创建文件处理程序的方法。
另外一个问题是,如果sql数据量很大(每天1-2G,整张表超过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的插值。当然,除了它是无效的文件句柄。
标签: sql perl variables fetch filehandler