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

时间:2011-06-20 09:01:56

标签: php oracle oci8

我是oracle的新手,我从sql代码块中读取输出参数时遇到了问题。我搜索了许多手册和教程,但我仍然无法帮助自己。

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您尝试在PHP中读取“A”的值,则必须使用绑定变量。您还需要将bind变量作为引用传递。由于你不能重命名你的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 值。