Theo như tôi nhớ, bạn phải chỉ định type
và maxlength
tới oci_bind_by_name()
cho các biến được trả về từ thủ tục.
Giả sử :r
là OUT
biến, hãy thử:
oci_bind_by_name($stid, ":r", $r, 50, SQLT_CHR);
Đoạn mã sau hoạt động để trả về giá trị từ một thủ tục Oracle ( Zend_Db_Adapter_Oracle phiên bản):
$statement = $db->prepare('BEGIN oracle_procedure(:result); END;');
$statement->bindParam('result', $result, SQLT_CHR, 12);
$statement->execute();
echo $result;