Intereting Posts
MySQL: подсчитайте количество раз, когда появится значение Разработка базы данных и использование нечисловых первичных ключей Как создавать комбинации всех комбинаций Как считать по фильтру в SQL-запросе? Найти имя таблицы ссылок, используя имя таблицы, поля и схемы Есть ли замена для функции «max» и группировки (оптимизация производительности агрегатных операций)? Объединение таблиц с использованием значения внутри столбца JSONB Ошибка конверсии при преобразовании значения nvarchar … в тип данных int Ленько оценивайте представление MySQL SQL Scheduling – выбор всех номеров, доступных для заданного диапазона дат Управление использованием ЦП в SQLQL query-sql 2008 Предпочтительный метод проектирования базы данных для назначения ролей пользователей? (Шляпы против групп) SQL «Присоединиться» к нулевым значениям Использование переменных в выражении SELS PLSQL Сетевой адаптер не смог установить соединение – Oracle 11g

Как эхо-текст во время выполнения SQL-скрипта в SQLPLUS

У меня есть пакетный файл, который запускает SQL-скрипт в sqlplus и отправляет результат в файл журнала:

Пользователь sqlplus / pw <RowCount.sql> RowCount.log

Мой файл журнала содержит следующее:

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production SQL> SQL> COUNT(*) ---------- 0 SQL> COUNT(*) ---------- 0 

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

Я хотел бы добавить некоторое форматирование в вывод, чтобы я мог различить, что произошло. Либо эхо исполняемого оператора, либо ручное вложение некоторых выражений «эхо» в скрипт было бы неплохо. В идеале это выглядело бы примерно так:

 SQL> select(*) from TableA; COUNT(*) ---------- 0 SQL> select(*) from TableB; COUNT(*) ---------- 0 

Вы можете использовать SET ECHO ON в начале вашего скрипта для достижения этого, однако вы должны указать свой скрипт, используя @ вместо < (также необходимо было добавить EXIT в конце):

Test.sql

 SET ECHO ON SELECT COUNT(1) FROM dual; SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual); EXIT 

Терминал

 sqlplus hr/oracle@orcl @/tmp/test.sql > /tmp/test.log 

test.log

  SQL> 
 SQL> SELECT COUNT (1) FROM dual;

   COUNT (1)
 ----------
      1

 SQL> 
 SQL> SELECT COUNT (1) FROM (SELECT 1 FROM double UNION SELECT 2 FROM dual);

   COUNT (1)
 ----------
      2

 SQL> 
 SQL> EXIT 

Команда prompt выведет текст на выход:

 prompt A useful comment. select(*) from TableA; 

Будет отображаться как:

 SQL> A useful comment. SQL> COUNT(*) ---------- 0 

Вы можете изменить имя столбца, поэтому вместо «COUNT (*)» у вас будет что-то значимое. Для этого вам придется обновить скрипт «RowCount.sql».

Например:

 SQL> select count(*) as RecordCountFromTableOne from TableOne; 

Будет отображаться как:

 RecordCountFromTableOne ----------------------- 0 

Если вы хотите иметь место в названии, вам нужно заключить его в двойные кавычки

 SQL> select count(*) as "Record Count From Table One" from TableOne; 

Будет отображаться как:

 Record Count From Table One --------------------------- 0