关于php 调用oracle存储过程。must be declared ORA-06550:

ORA-06550: line 1, column 7: PLS-00201: identifier 'SMEDBS.SP_WEB_GET_PREPAID_BAL' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored in D:\PHPSite\htdocs\test.php on line 57

php调用oracle存储过程报上面的错。oracle服务器是客户的机器,我没有任何权限。客户只给了我几个存储过程,但调用不成功。报这个错的原因是什么呢?存储过程没有声明?参数类型不对?

php代码:

  $v_cust_id = 1;
  $o_bal = "";

  $sql_sp = "BEGIN Smedbs.sp_web_get_prepaid_bal(:v_cust_id,:o_bal); END;"; 
   
  //Parse 
  $stmt = OCIParse($conn, $sql_sp); 
  OCIBindByName($stmt, ":v_cust_id",$v_cust_id,-1); 
  OCIBindByName($stmt, ":o_bal",$o_bal,-1);
  
  OCIExecute($stmt); 
  
  echo $o_bal;

作者: bscss2   发布时间: 2011-06-07

会是因为这个存储过程使用了临时表,而oracle用户没有临时表的权限或临时表空间到达上限造成的吗?

作者: bscss2   发布时间: 2011-06-07

问题解决了,是oracle用户权限的原因。

作者: bscss2   发布时间: 2011-06-07