2016-11-10 9 views
0

Oracle DatabaseのADDMレポートを取得しようとしています。出力は.txtとして配列形式で出力されます。テーブルの行形式で表示する必要があります。私はしかし、希望の出力を得ていないよ。クラスOCI-ロブのオブジェクトが文字列PHPを使用してDBMS_ADDMレポート出力を取得する方法

に変換することができませんでしたので、私は、$ STIDにoci_fetch_allを行った後のvar_dumpを試みたが、これだ:

を今これはというエラーを返し

$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"; 

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の目的です。

答えて

0

私はこの質問に対して私の答えを得ました。 PHPのshell_exec関数は、Linux形式のtxtファイルの単純なcatコマンドを実行するという素晴らしい仕事をすることが判明しました。だから、文字列を表示する変数を単にtxtファイルに出力するだけです。シェルファイル( 'cat filename')

とても簡単です!

関連する問題