массивы — Как получить вывод отчета DBMS_ADDM через переполнение стека

Я пытаюсь получить отчет ADDM для Oracle Database. Вывод в виде массива в виде .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 не может быть преобразован в строку

Поэтому я попробовал var_dump после выполнения oci_fetch_all на $ stid и получил это:

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

Как я могу повторить эту строку, которая показывает отчет, потому что он отображает его в правильном формате, я бы получил его в оболочке. Это для интерфейса пользовательского интерфейса.

0

Решение

Я получил ответ на этот вопрос.
Получается, что функция shell_exec в PHP делает фантастическую работу, выполняя простую команду cat для txt-файла в формате Linux. Поэтому я просто вывожу переменную, которая отображает строку, в текстовый файл, и просто shell_exec (‘cat filename’)

Так просто!!!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]