背景:调用oracle中的存储过程
存储过程有入参in和出参out,出参有游标cursor
目标:执行调用存储过程,获取返回值,以及游标里的内容。
$tns = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 1xx.1xx.1xx.xx7)
(PORT =xxx)) (CONNECT_DATA = (SERVICE_NAME = xx) (SID =xx)))';
$conn = oci_connect ('username' , 'pwd',$tns,'utf8');
if (! $conn ) {
$e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES),
E_USER_ERROR);
}
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin PRODURE_NAME(:IN1,:IN2,:OUT1,:OUT2); end;");
//传参 入参IN 出参OUT 指定数据类型
oci_bind_by_name ( $stmt , ':IN1' , $param1 );
oci_bind_by_name ( $stmt , ':IN2' , $param2);
oci_bind_by_name($stmt, ":OUT1", $curs, -1, OCI_B_CURSO