这几天一直在研究这个问题,头大却一直解决不了
oracle的存储过程用SQL PLUS测试是通过的,返回结果也正常
用PHP连接,在ora_exec($cursor);这一句报错:Warning: Ora_Exec failed (ORA-01405: 提取的列值为 NULL -- while processing OCI function OEXEC/OEXN)
但是相同的语句,我上次用来连另一个存储过程却是正常的
百思不得其解~请各位达人帮忙解决,非常感谢!
-------------------PHP代码如下------------------
<?//建立数据库连接
$conn_str = "ora"; //连接串(cstr : Connection_STRing)
$user = "user@".$conn_str; //数据库用户名
$password = "pass"; //密码$conn = ora_logon($user, $password) ;
$cursor = ora_open($conn);//设定绑定
$IC_ACC_NBR = $_REQUEST[tel]; //准备用以绑定的php变量 id
echo "输入参数:IC_ACC_NBR=".$IC_ACC_NBR."<br>";
$sql_sp ="BEGIN PROC_INT_CM_SERV(:IC_ACC_NBR,:OC_CUST_NAME,:OC_SERV_CHANNEL,:OC_ADDR,:OD_CREATE_DATE,:OC_SUBST_NAME,:OC_LAIXIAN,:OC_CAILING,:OC_RELAT_AD,:OC_AD_BILLING_TYPE,:OD_AD_CREATE_DATE); END;";
echo " ".$sql_sp."<br>";
//Parse
$stmt = ora_parse($cursor, $sql_sp);//执行绑定
ora_bind($cursor, "IC_ACC_NBR",":IC_ACC_NBR", 20); $values1="";$values2="";$values3="";$values4="";$values5="";
$values6="";$values7="";$values8="";$values9="";$values10="";ora_bind($cursor, "values1",":OC_CUST_NAME", 20);
ora_bind($cursor, "values2",":OC_SERV_CHANNEL", 20);
ora_bind($cursor, "values3",":OC_ADDR", 20);
ora_bind($cursor, "values4",":OD_CREATE_DATE", 20);
ora_bind($cursor, "values5",":OC_SUBST_NAME", 20);
ora_bind($cursor, "values6",":OC_LAIXIAN", 20);
ora_bind($cursor, "values7", ":OC_CAILING", 20);
ora_bind($cursor, "values8",":OC_RELAT_AD", 20);
ora_bind($cursor, "values9",":OC_AD_BILLING_TYPE", 20);
ora_bind($cursor, "values10",":OD_AD_CREATE_DATE", 20); ora_exec($cursor);echo $i_tele.":".$values1.":".$values2.":".$values3.":".$values4.":".$values5.":".$values6.":".$values7.":".$values8.":".$values9.":".$values10;ora_close($cursor);die();
?>
oracle的存储过程用SQL PLUS测试是通过的,返回结果也正常
用PHP连接,在ora_exec($cursor);这一句报错:Warning: Ora_Exec failed (ORA-01405: 提取的列值为 NULL -- while processing OCI function OEXEC/OEXN)
但是相同的语句,我上次用来连另一个存储过程却是正常的
百思不得其解~请各位达人帮忙解决,非常感谢!
-------------------PHP代码如下------------------
<?//建立数据库连接
$conn_str = "ora"; //连接串(cstr : Connection_STRing)
$user = "user@".$conn_str; //数据库用户名
$password = "pass"; //密码$conn = ora_logon($user, $password) ;
$cursor = ora_open($conn);//设定绑定
$IC_ACC_NBR = $_REQUEST[tel]; //准备用以绑定的php变量 id
echo "输入参数:IC_ACC_NBR=".$IC_ACC_NBR."<br>";
$sql_sp ="BEGIN PROC_INT_CM_SERV(:IC_ACC_NBR,:OC_CUST_NAME,:OC_SERV_CHANNEL,:OC_ADDR,:OD_CREATE_DATE,:OC_SUBST_NAME,:OC_LAIXIAN,:OC_CAILING,:OC_RELAT_AD,:OC_AD_BILLING_TYPE,:OD_AD_CREATE_DATE); END;";
echo " ".$sql_sp."<br>";
//Parse
$stmt = ora_parse($cursor, $sql_sp);//执行绑定
ora_bind($cursor, "IC_ACC_NBR",":IC_ACC_NBR", 20); $values1="";$values2="";$values3="";$values4="";$values5="";
$values6="";$values7="";$values8="";$values9="";$values10="";ora_bind($cursor, "values1",":OC_CUST_NAME", 20);
ora_bind($cursor, "values2",":OC_SERV_CHANNEL", 20);
ora_bind($cursor, "values3",":OC_ADDR", 20);
ora_bind($cursor, "values4",":OD_CREATE_DATE", 20);
ora_bind($cursor, "values5",":OC_SUBST_NAME", 20);
ora_bind($cursor, "values6",":OC_LAIXIAN", 20);
ora_bind($cursor, "values7", ":OC_CAILING", 20);
ora_bind($cursor, "values8",":OC_RELAT_AD", 20);
ora_bind($cursor, "values9",":OC_AD_BILLING_TYPE", 20);
ora_bind($cursor, "values10",":OD_AD_CREATE_DATE", 20); ora_exec($cursor);echo $i_tele.":".$values1.":".$values2.":".$values3.":".$values4.":".$values5.":".$values6.":".$values7.":".$values8.":".$values9.":".$values10;ora_close($cursor);die();
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货