我是PHP的新手,我正在测试一个简单的PHP来调用存储过程。我可以连接到Oracle数据库,但是当我尝试调用oci_execute($ stmt)时, 它总会失败。存储过程没有问题,因为我的其他java程序正在使用它。请告知问题是什么。 感谢。
$db="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=DEVORA)(PORT=1590)))(CONNECT_DATA=(SID=xxxORxxx)))";
$conn = oci_connect("xxxx","xxxx",$db);
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
else {
print "Connected to Oracle!\n";
}
$sql = 'BEGIN tcwzusr.getuserapp(:output_cur, :userid, :effdate); END;';
$stmt = oci_parse($conn,$sql);
$userid='myid01';
$effdate='01-12-2017';
oci_bind_by_name($stmt,':userid' ,$userid);
oci_bind_by_name($stmt,':effdate' ,$effdate);
$output_cur = oci_new_cursor($conn);
oci_bind_by_name($stmt,':output_cur', $output_cur,-1, OCI_B_CURSOR);
oci_execute($stmt);
if ( !$status ) {
// Rollback the procedure
print "rollback\n";
oci_rollback($conn);
die ("$status_msg\n");
}