Entry
How do I get the result from a procedure with an array as OUT parameter?
Apr 20th, 2004 18:30
Eyzen Medina, Tomas Albinsson,
Hi:
You have to use a cursor as out parameter.
First you have to declare a cursor type with the same table definition
and past to the procedure as Out Parameter.
Sample
TYPE CUR_PHP_LINES IS REF CURSOR RETURN VW_ORDER_LINE%ROWTYPE;
// The type CUR_PHP_LINES AS VW_ORDER_LINE%ROWTYPE
Use a view when you don't want return a complete table.
In the procedure declare.
PROCEDURE NavigateOrders
(
Pv_Rec OUT CUR_PHP_LINES
)
IS
OPEN Pv_Rec FOR SELECT * FROM MyTable
END;
So in your PHP Code
$db = OCILogon(DBUSER,DBPASSWORD);
$curs = OCINewCursor($db);
$STR_TO_PARCE = "begin NavigateOrders(:Pv_Rec); end;";
$stmt = OCIParse($db,$STR_TO_PARCE);
OCIBindByName($stmt,":Pv_Rec",$curs,-1,OCI_B_CURSOR);
OCIExecute($stmt);
OCIExecute($curs);
while(OCIFetchInto($curs,$data)){
var_dump($data);
}
@OCIFreeCursor($curs);
@OCIFreeStatement($stmt);
@OCILogoff($db);
Tha's All :)
Eyzen