如何从过程调用中读取变量


How to read variable from procedure call

我是oracle的新手,在从sql代码块读取输出参数时遇到了问题。我搜索了很多手册和教程,但还是忍不住。

$sql = "declare
        A varchar2(16);
        docs.InsT(...);
        end;";
$stid = oci_parse($conn, trim($sql));
oci_execute($stid);
oci_commit($conn);

我需要A的值,但我不能重命名它。

谢谢你的帮助。

如果您试图在PHP中读取"A"的值,则必须使用绑定变量。您还需要将绑定变量作为引用传入。既然你不能重命名你的A变量,你可以这样做。。。

$rVal = '';
$sql = "declare
        A varchar2(16);
        docs.InsT(...);
        :rVal := A;
        end;";
$stid = oci_parse($conn, trim($sql));
oci_bind_by_name($stid, ':rVal', &$rVal, 16);
oci_execute($stid);
oci_commit($conn);
var_dump($rVal);

$rVal现在包含oracle中A的值。