Rumah > pembangunan bahagian belakang > tutorial php > 用PDO调用oracle存储过程,返回参数为游标,怎么提取数据

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:05:26
asal
1483 orang telah melayarinya

有个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);
Salin selepas log masuk


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());
Salin selepas log masuk

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan