!

Формат

! [символьная строка]

Назначение

Вывод на экран терминала или в выходной файл символьной строки.

Описание

При обработке SQL-скриптов часто возникает необходимость вести протокол выполнения SQL-скрипта, т.е. выдавать на экран терминала (или в выходной файл) сообщения о том, какая работа выполняется в текущий момент или уже была выполнена, Это можно сделать с помощью комментариев, которые явно записываются в SQL-скрипт и выводятся по команде !. Дополнительно команда ! может использоваться для форматирования результатов поисковых SQL-запросов, выводимых в файл в виде простых справок (отчетов).

Команда обрабатывается следующим образом:

  • текст комментария выводится на экран терминала. Если используется средство операционной системы для перенаправления стандартного вывода – то в указанный выходной файл;

  • если команда задается в интерактивном режиме, то текст комментария просто дублируется на экране. Таким способом можно протоколировать интерактивную работу пользователя;

  • текст выводится в том виде, в каком он задан, начиная от символа ! и до конца строки. Только первый встретившийся в строке символ ! воспринимается как команда, все остальные – как обычные символы;

  • команда ! воздействует только на одну строку SQL-скрипта. Перенос комментария не допускается (необходимо в каждой продолжающейся строке комментария повторять команду !);

  • использование комментария внутри текстов SQL-запросов запрещается (в общем случае будет фиксироваться синтаксическая ошибка).

Примеры

  1. Пусть содержимое SQL-скрипта sample.sql будет следующее:

    ! *** исполняется запрос – que1.sql
    _que1.sql
    ! *** исполняется запрос – que2.sql
    _que2.sql
    ! *** исполняется запрос – que3.sql
    _que3.sql

    Протокол выполнения скрипта sample.sql на экране терминала будет выглядеть следующим образом:

    SQL > _sample
      *** исполняется запрос – que1.sql
      *** исполняется запрос – que2.sql
      *** исполняется запрос – que3.sql
    SQL >

    Если SQL-скрипт sample.sql запущен на выполнение как

    INL -u SYSTEM/MANAGER8 -f c:\test_INL\sample  >prtcol.txt

    то протокол выполнения будет записываться в файл prtcol.txt, создаваемый в том же каталоге, в котором выполняется inl.

  2. Пример использования команды ! для форматирования выборки данных поискового запроса. Пусть SQL-скрипт имеет следующий вид:

    time
    !                Справка
    ! об автомобилях выпуска до 1970 года
    select make as "Изготовитель", model as "Модель"
    from auto where year < =70;

    Команда TIME добавлена, чтобы исключить из справки временные параметры выполнения SQL-запроса. Тогда справка будет выдана в следующем виде:

                      Справка
     об автомобилях выпуска до 1970 года
     Изготовитель         Модель
     –                    –
    |ALPINE              |A-310               |
    |CHRYSLER            |DODGE CORONET CUSTOM|
    |AMERICAN MOTORS     |GREMLIN X           |
    |GENERAL MOTORS      |OLDSMOBILE 98       |
    . . . 

Примечание

Комментарии, задаваемые по команде !, являются исполняемыми, т.е. всегда выводятся на экран или в выходной файл. Для комментирования (документирования) текстов SQL-скриптов можно использовать неисполняемые комментарии. Они задаются следующим образом:

< однострочный SQL-оператор > [!]< комментарий >;

Например:

create role ROLE1  for XXXX ; Роль "Начальник отдела";

или

create role ROLE1  for XXXX; ! Роль "Начальник отдела";

причем и SQL-оператор и комментарий к нему должны размещаться на одной строке. Комментарий должен заканчиваться знаком ';'. Знак '!' (признак исполняемого комментария) можно не задавать – он все равно будет проигнорирован.