【发布时间】:2013-05-14 18:34:18
【问题描述】:
如何在perl脚本中执行sybase存储过程**“dbo.xyz”?
my $procedure = "call dbo.GetAllBooks";
my $ExecProc = $dbh -> prepare($procedure) or die "Unable to prepare '$procedure'";
$ExecProc -> execute();
while (@data = $ExecProc->fetchrow_array)
{
open (FH, ">>Output.csv") or die "Could not open file Output.csv: $!";
print FH "@data $csv_record .\n";;
close (Output.csv);
}
【问题讨论】:
-
这是在 perl 中将数据库结果保存到 .csv 文件的正确方法吗?
-
连接字符串的外观如何?
GetAllBooks返回什么? -
这将为每行结果打开、附加和关闭文件。这是非常低效的。您应该将
open和close命令放在while循环之外。此外,使用三参数打开和词法文件句柄:open my $fh, '>>', 'Output.csv'和print $fh "string"。$csv_record是干什么用的?你的代码有效吗?