Here is essentially what the Oracle code could look like (I say 'could' because I am using someone elses' code and the functions and types called are in several different packages):
Code: Select all
TYPE r_data IS RECORD (field1 NUMBER, field2 NUMBER);
g_r_data r_data;
PROCEDURE p_test (p_id IN NUMBER, p_r_data OUT r_data) IS
BEGIN
--The global variable g_r_data is initialized somewhere else.
p_r_data := g_r_data;
END;
Code: Select all
$stmt = oci_parse($conn,"begin p_test(:id, :data); end;");
oci_bind_by_name($stmt,":id",$id,32);
$curs = oci_new_cursor($conn);
oci_bind_by_name($stmt,":data",$curs,-1,OCI_B_CURSOR);
$id = 5;
oci_execute($stmt);
oci_execute($curs);
oci_fetch_all($curs, $data, null, null, OCI_FETCHSTATEMENT_BY_COLUMN);
Anyone have any idea how to make this work?
Thanks!