2

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);
 }
4

1 に答える 1