加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – DBIx :: Class可以与存储过程而不是表一起使用吗?

发布时间:2020-12-15 21:45:14 所属栏目:大数据 来源:网络整理
导读:通过返回结果集而不是表或视图的mssql存储过程向我提供了从db读取的访问权限.但我希望能够使用ORM读取数据. 我尝试使用DBIx :: Class :: ResultSource :: View来执行过程调用(例如EXEC my_stored_proc?)作为自定义查询,但这不起作用,因为它试图将过程调用转
通过返回结果集而不是表或视图的mssql存储过程向我提供了从db读取的访问权限.但我希望能够使用ORM读取数据.

我尝试使用DBIx :: Class :: ResultSource :: View来执行过程调用(例如EXEC my_stored_proc?)作为自定义查询,但这不起作用,因为它试图将过程调用转换为select语句.

有人有另一个建议吗?

解决方法

不,没有合理的方法在DBIx :: Class的上下文中执行存储过程.

据我所知,与解决方法最接近的是“使用ORM”获取数据库句柄,这是一个弱点:

my @results = $schema->storage->dbh_do(sub{
         my ($storage,$dbh,@args) = @_;
         my $sth = $dbh->prepare('call storedProcNameFooBar()');
         my @data;
         $sth->execute();
         while( my $row = $sth->fetchrow_hashref){
             push @data,$row;
         }
         return @data;
    },());

[详情见
http://metacpan.org/pod/DBIx::Class::Storage::DBI#dbh_do]

…因为你没有为你的麻烦获得ORM的好处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读