Доколкото си спомням, трябва да посочите type
и maxlength
към oci_bind_by_name()
за променливи, върнати от процедурата.
Ако приемем :r
е OUT
променлива, опитайте:
oci_bind_by_name($stid, ":r", $r, 50, SQLT_CHR);
Следният код работи за връщане на стойност от процедура на Oracle (Zend_Db_Adapter_Oracle версия):
$statement = $db->prepare('BEGIN oracle_procedure(:result); END;');
$statement->bindParam('result', $result, SQLT_CHR, 12);
$statement->execute();
echo $result;