0

Oracle データベースの ADDM レポートを取得しようとしています。出力は、配列形式で .txt として表示されます。表の行形式で表示する必要があります。ただし、目的の出力が得られません。

  $today = date("His");
  $taskname =$username.$today;
  $taskquery = "BEGIN DBMS_ADDM.ANALYZE_INST(:tname,     :bsnap,:esnap,:instnum);END;";
  $stid = oci_parse($conn,$taskquery);
  oci_bind_by_name($stid, ":tname", $taskname);
  oci_bind_by_name($stid, ":bsnap", $bsnap);
  oci_bind_by_name($stid, ":esnap", $esnap);
  oci_bind_by_name($stid, ":instnum", $inst);
  oci_execute($stid);
  $mainquery = "SELECT DBMS_ADDM.GET_REPORT(:tname) from dual";
  $stid = oci_parse($conn,$mainquery);
    oci_bind_by_name($stid, ":tname", $taskname);
    oci_execute($stid);
    echo "<table border='1'>\n";
   while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
       echo "<tr>\n";
      foreach ($row as $item) {
           echo "    <td>" . $item . "</td>\n";
       }
  echo "</tr>\n";
  }
  echo "</table>\n";

これにより、次のようなエラーが返されます: OCI-Lob クラスのオブジェクトを文字列に変換できませんでした

そこで、$stid で oci_fetch_all を実行した後に var_dump を試してみたところ、次のようになりました。

array (size=1)
  'DBMS_ADDM.GET_REPORT(:TNAME)' => 
    array (size=1)
      0 => string '          ADDM Report for Task...and rest of the report shows here'

レポートを表示する文字列をエコーするにはどうすればよいですか。シェルで取得する適切な形式で表示されるためです。これは、フロントエンド UI 用です。

4

1 に答える 1