我在 pl/sql 中创建了一个返回 varchar2 表的函数,我在 sqldeveloper 上对其进行了测试,我知道它可以工作。但是现在,我想用一个 php 项目来检索这个表。首先,我试过这个
oci_bind_by_name($stid,":returnValue",$returnValue);
但我得到了这个:
Warning: oci_execute() [function.oci-execute]: ORA-06550: line 2, column 41: PLS-00382: expression is of wrong type ORA-06550: line 2, column 25: PL/SQL: Statement ignored in C:\xampp\htdocs\BCN_REQUETEUR\index.php on line 15
然后我尝试了这个
oci_bind_array_by_name($stid,":returnValue",$returnValue,250,250);
但我遇到了同样的错误。那么,我们如何在 php 中检索这个 varchar2 表呢?谢谢
编辑:我终于成功了,我没有使用 pl/sql 函数,而是使用了一个带有“输出参数”的过程,然后在 php 端:
$query = "BEGIN
ecrire_requete(30, :thesechar);
END;";
$stid = oci_parse($conn, $query);
$tabvars = oci_new_collection($conn,'MYTABLETYPE');
oci_bind_by_name($stid, ':thesechar', $tabvars, -1, SQLT_NTY);
oci_execute($stid, OCI_DEFAULT);
for ($i = 0;$i < count($tabvars);$i++)
{
echo "<br>".$tabvars->getElem($i);
}