首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在perl中执行存储过程?

如何在perl中执行存储过程?
EN

Stack Overflow用户
提问于 2013-05-20 08:31:55
回答 2查看 6.3K关注 0票数 1

如何在perl脚本中执行sybase存储过程** "dbo.xyz“?

代码语言:javascript
运行
复制
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);
     }
EN

回答 2

Stack Overflow用户

发布于 2013-05-20 11:43:55

如果使用DBIDBD::Sybase,则存储过程的处理方式与执行任何其他SQL语句的方式完全相同。有一个不同之处在于,它还将返回返回状态的额外结果集。您可以在调用$sth->{ syb_result_type }方法时检查fetch*的值,以确定它是否为fetch*

然而,与其他数据库驱动程序相比,DBD::Sybase有点奇怪。考虑到Sybase为开发人员提供的DB库,有些事情可能太难了,所以我个人并不责怪作者以这种方式实现驱动程序。不过,DBD::Sybase仍然做得很好。

您肯定应该花一些时间阅读CPAN文档中的存储过程部分,因为它描述了它所做的和不做的事情。实际上,拿一杯咖啡,把所有的东西都读一遍。我使用DBD::Sybase做了大量的工作,这确实帮助了我。

调用DBD::Sybase中的存储过程

票数 1
EN

Stack Overflow用户

发布于 2015-09-22 00:29:07

就像这样:

代码语言:javascript
运行
复制
my $sql = qq{ BEGIN  SCHEMA_NAME.STORED_PROC_NAME(); END;};
my $sth = $dbh->prepare($sql)  || die $sth->$DBI::errstr;
$sth->execute  || die $sth->errstr; } 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16645500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档