如何在perl中执行存储过程?
如何在perl脚本中执行sybase存储过程**“dbo.xyz如何在perl中执行存储过程?,perl,sybase,Perl,Sybase,如何在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) { o
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);
}
如果使用的是
DBI
和DBD::Sybase
,则存储过程的处理方式与执行任何其他SQL语句的方式完全相同。有一个区别是,它还将为返回状态返回一个额外的结果集。在调用fetch*
方法时,可以检查$sth->{syb\u result\u type}
的值,查看它是否为CS\u STATUS\u result
然而,与其他数据库驱动程序相比,DBD::Sybase
有点奇怪。考虑到Sybase为开发人员提供的DB库,有些事情可能太难了,所以我个人不会责怪作者以这种方式实现驱动程序<代码>DBD::Sybase仍然做得很好
您肯定应该花一些时间阅读CPAN文档中的存储过程部分,因为它描述了它的功能和不功能。事实上,喝一杯咖啡,读一读。我使用DBD::Sybase
做了大量的工作,它确实帮助了我
如果使用的是
DBI
和DBD::Sybase
,则存储过程的处理方式与执行任何其他SQL语句的方式完全相同。有一个区别是,它还将为返回状态返回一个额外的结果集。在调用fetch*
方法时,可以检查$sth->{syb\u result\u type}
的值,查看它是否为CS\u STATUS\u result
然而,与其他数据库驱动程序相比,DBD::Sybase
有点奇怪。考虑到Sybase为开发人员提供的DB库,有些事情可能太难了,所以我个人不会责怪作者以这种方式实现驱动程序<代码>DBD::Sybase仍然做得很好
您肯定应该花一些时间阅读CPAN文档中的存储过程部分,因为它描述了它的功能和不功能。事实上,喝一杯咖啡,读一读。我使用DBD::Sybase
做了大量的工作,它确实帮助了我
就像这样:
my $sql = qq{ BEGIN SCHEMA_NAME.STORED_PROC_NAME(); END;};
my $sth = $dbh->prepare($sql) || die $sth->$DBI::errstr;
$sth->execute || die $sth->errstr; }
正是这样:
my $sql = qq{ BEGIN SCHEMA_NAME.STORED_PROC_NAME(); END;};
my $sth = $dbh->prepare($sql) || die $sth->$DBI::errstr;
$sth->execute || die $sth->errstr; }
这是用perl将数据库结果保存到.csv文件的正确方法吗?连接字符串看起来如何?
GetAllBooks
返回什么?这将为每一行结果打开、追加和关闭文件。效率很低。您应该将打开
和关闭
命令置于while
循环之外。另外,使用三个参数open和词法文件句柄:openmy$fh,“>>”,“Output.csv”
和print$fh“string”
。$csv\u记录的作用是什么?你的代码有效吗?这是用perl将数据库结果保存到.csv文件的正确方法吗?连接字符串看起来如何?GetAllBooks
返回什么?这将为每一行结果打开、追加和关闭文件。效率很低。您应该将打开
和关闭
命令置于while
循环之外。另外,使用三个参数open和词法文件句柄:openmy$fh,“>>”,“Output.csv”
和print$fh“string”
。$csv\u记录的作用是什么?你的代码有效吗?而@amesee:我的实现方式是,$varible=“exec[procedure name]”;&使用DBI module@amesee:我的实现方式是,$varible=“exec[procedure name]”;&使用的DBI模块