使用PHP调用Oracle存储过程时出错

时间:2017-06-13 10:17:40

标签: php oracle stored-procedures

我是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");
}

0 个答案:

没有答案