我无法从该函数执行存储过程。这是我尝试的:
function STD( $i_std_id, $i_order_by )
{
$conn = open_db("CONN");
$outrefc = oci_new_cursor($conn); //Declare cursor variable
$mycursor = oci_parse ($conn, "begin TEST.STD( :i_std_id, :i_order_by, :curs); end;"); // prepare procedure call
oci_bind_by_name($mycursor,':i_std_id' , $i_std_id );
oci_bind_by_name($mycursor,':i_order_by', $i_order_by );
oci_bind_by_name($mycursor,':curs' , $outrefc, -1, OCI_B_CURSOR); // bind procedure parameters
return exec_cur($conn, $mycursor, $outrefc);
}
连接正常。无论如何我没有结果。我期待更多的行。
我可以用echo $i_order_by."#### $i_std_id"
打印参数。
当我使用打印参数直接在DB中运行程序时,我得到输出。
这是签名:
PROCEDURE STD
(
i_std_id IN NUMBER,
i_qot_id IN NUMBER,
i_order_by IN VARCHAR,
o_recordset OUT SYS_REFCURSOR
);
有任何线索吗?谢谢。
答案 0 :(得分:1)
参数不存在问题吗?我可以看到你用3个参数调用过程STD
,而你的签名中提到4个(i_qot_id
似乎是额外的一个)。