SQLPLUS: остановить вывод терминала во время буферизации в файл - PullRequest
0 голосов
/ 20 февраля 2019

Как остановить вывод терминала в Unix во время SQLPLUS и буферизировать вывод в файл?

Я пытался serveroutput, echo, termout, feedback в режиме ВЫКЛ, но не повезло.

Также отображаются детали входа в систему.

sqlplus -s  $LOGON  << EOF
    WHENEVER OSERROR EXIT 9;
    WHENEVER SQLERROR EXIT 9;
    set serveroutput off;
    set echo off;
    set termout off;
    set feedback off;
    set heading off;
    set linesize 10000;
    set colsep "|";
    set trims on;
    set trimspool on;
    set pagesize 0;
    spool Summary.txt
    ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';
    Select * from Customer;
    spool off;
    EXIT;
    EOF

PS: я называю это утверждение в Unix Script

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Существует множество новых функций для всего семейства Oracle 12 Release, которые могут помочь.Например, в 12.2 есть новая команда 'history', которую вы можете показывать и запускать ваши прошлые команды в сеансе без необходимости повторного ввода.Чтобы включить его, вы можете либо «установить историю» по умолчанию на 100 строк истории, либо указать количество строк, которые вы хотите сохранить.Чтобы просмотреть свою историю, вы просто набираете «history» в командной строке и для выполнения предыдущей команды просто вводите «run LineNum» для оператора SQL, который вы хотите выполнить.

Существует также «SET»MARK CSV ', поскольку это быстрый способ форматирования набора результатов для электронных таблиц Excel или загрузки наборов данных в другие типы баз данных.В приведенном ниже примере показано, как использовать команды «SET MARK CSV», «SET ROWLIMT» и «SET FEEDBACK ON SQL_ID».

Пример 2 введите описание изображения здесь

Новые функции SQL Plus и даты их выпуска перечислены ниже.Также есть новый параметр '-f' (для быстрого), который вы можете передать в SQL Plus в командной строке, чтобы ускорить ваш сеанс.Версия 12.2 - HISTORY SET HIST [ORY] {ON |ВЫКЛ |n} - - Можно создать формат CSV. SET MARK CSV ON [Символ DELIMI {TER}] [QUOTE {ON | OFF}] - SET STATEMENTC [ACHE] {0 |n} - УСТАНОВИТЬ ОБРАТНУЮ СВЯЗЬ ТОЛЬКО вместо [ON |OFF] - Sqlplus –f @ test.sql Устанавливает ARRAYSIZE 100, LOBPREFETCH 16384, PAGESIZE 50000, ROWPREFETCH 2, STATEMENTCACHE 20 Ускорение работы. Версия 18c - УСТАНОВКА ОКНА LINESIZE - УСТАНОВКА ОБРАТНОЙ СВЯЗИ Вкл.список пар имя-значение

Наконец, единственное улучшение, которое я смог найти в 19c для sqlplus, - это улучшение eZconnect, где вы можете включать пары тег / значение в командную строку во время подключения для изменения других параметров.Это дает быстрый способ подключения без необходимости редактирования файла SQLNET.ora.Пример использования этой функции приведен ниже:

sqlplus soe / soe @ // имя хоста: 1521 / sales.company.com? Connect_time = 60 & transport connect_timeout = 30 & retry_count = 4

0 голосов
/ 20 февраля 2019

set termout off; - это правильный вариант, но он не работает в интерактивном режиме.

Параметры:

  1. Сохраните сценарий в файл и выполните с помощью sqplus logon @file_name (лучше)
  2. перенаправьте вывод в / dev / null или другой файл (sqlplus)balbalb)> / dev / null
...