Как получить результат SQL-запроса в сценарии оболочки в том же формате, что и при запуске Oracle SQL Developer/Toad/PLSQL Developer

Вы можете использовать утилиту kstat. Переменные для Solaris 10 и Solaris 11 разные, вот универсальный код:

KSTAT=$(kstat -p -c net '::mac:obytes64';  echo solaris10 globzone sent  >/dev/null
        kstat -p -c net '::mac:rbytes64';   echo solaris10 globzone rsv  >/dev/null
        kstat -p -c net '::phys:obytes64';  echo solaris11 globzone sent >/dev/null
        kstat -p -c net '::phys:rbytes64';  echo solaris11 globzone rcv  >/dev/null)

$KSTAT=$(echo "${KSTAT}" | sed 's/:[a-z]*:.*bytes64//; s/://; /vnic/d; /vsw/d;')

Пример переменной KSTAT состоит из отправленного и полученного трафика:

$ echo "$KSTAT"
igb0    1381124551259
igb1    0
igb2    0
igb3    0
usbecm2 509924057
igb0    803508091598
igb1    0
igb2    0
igb3    0
usbecm2 1007403041

Все эти счетчики постоянно растут. Вы можете провести их временной анализ, чтобы получить удобочитаемую -статистику.

Также обратите внимание, что если у вас не -глобальные зоны, эта статистика будет работать ТОЛЬКО для монопольного стека IP -. Все зоны в общем стеке IP -будут иметь одинаковую статистику.

0
26.02.2020, 11:54
1 ответ

Для вывода в html вставьте вот такую ​​строку:

SET MARKUP HTML

поэтому ваш скрипт будет примерно таким

#/bin/ksh
var=$(sqlplus -s <user>/<password>@DB <<EOF
      set heading on
      set trimspool off
      set linesize 200
      set feedback off
      SET MARKUP HTML ON
      spool out.html;
      select col_a, col_b, col_c  from <table>;

      spool off;
      exit;
      EOF)

echo "$var" > out.txt
exit 0
1
28.04.2021, 23:22

Теги

Похожие вопросы