>  기사  >  백엔드 개발  >  用PDO调用oracle存储过程,返回参数为游标,怎么提取数据

用PDO调用oracle存储过程,返回参数为游标,怎么提取数据

WBOY
WBOY원래의
2016-06-23 14:05:261429검색

有个oracle存储过程,只有一个返回参数,该参数为游标,请问用PDO组件怎么提取?

目前我写的代码如下:

$dbconn=new PDO($dsn,$user,$pwd);$strsql="begin pk001.pr001(:rc); end";$dbsear=$dbconn->prepare($strsql);$dbsear->bindParam(":rc", $rc,PDO::PARAM_LOB );$dbsear->execute();print_r($rc);


pk001是包名,pr001是包里面的存储过程名。rc为返回参数。

在PL/SQL工具中运行
begin pk001.pr001(rc => :rc); end;
可以看到返回值:
Variable    Type      Value
rc     Cursor    
如上的三列,最后一列点击右边的...按钮,就可以看到游标展开的数据。

请问如何用PDO将游标中的表数据,填充到一个二维数组中?


回复讨论(解决方案)

$dbsear->execute(); 后

do {  $res[] = $dbsear->fetchAll(PDF::FETCH_ASSOC); }where($dbsear->nextRowset());

这是通用代码
如果你的存储过程只返回一个结果集,可以去掉 do ... while 循环

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.