varchar2 のテーブルを返す pl/sql で関数を作成しました。それを 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);
しかし、私は同じエラーが発生しています。では、この varchar2 のテーブルを php で取得するにはどうすればよいでしょうか? ありがとう
編集: pl/sql関数を使用する代わりに、「outパラメーター」を使用してプロシージャを使用し、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);
}