Как прочитать переменную из вызова процедуры - PullRequest
0 голосов
/ 20 июня 2011

Я новичок в 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 голосов
/ 20 июня 2011

Если вы пытаетесь прочитать значение 'A' в PHP, вы должны использовать переменные связывания.Вам также нужно передать переменную связывания в качестве ссылки.И поскольку вы не можете переименовать переменную 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 теперь содержит значение A из oracle.

...