Базы данных Oracle - статьи

         

Комментарии в командных файлах


В командных файлах можно вводить и использовать комментарии трех видов:

  • однострочные комментарии, задаваемые командой SQL*Plus REMARK;
  • одно- или многострочные комментарии SQL /* ... */;
  • однострочные комментарии ANSI/ISO --.
  • Команда REMARK имеет следующий простой синтаксис:

    <команда REMARK> ::=

    REM[ARK] [<любые символы до конца строки>]

    Команда REMARK должна быть первой командой в строке. Задаваемый ею комментарий продолжается до конца строки.

    Комментарии /* ... */ можно вводить в виде отдельных строк в командном файле, в строке оператора SQL или PL/SQL-блока. После пары символов начала комментария (/*) обязательно должен идти пробел, иначе косая рассматривается как команда выполнения содержимого SQL-буфера. Такие комментарии не могут быть вложенными. Комментарий, введенный в командной строке SQL*Plus, не попадает в буфер SQL.

    Комментарии в виде -- ... можно вводить в конце строки с часть оператора SQL или PL/SQL-блока (такой комментарий продолжается до конца строки). Таким комментарием нельзя завершать команду SQL*Plus- он должен быть первой командой в строке.

    При размещении комментариев в командных файлах необходимо придерживаться ряда простых правил, связанных с особенностями работы утилиты SQL*Plus:

  • Не размещайте комментарии среди первых нескольких ключевых слов оператора SQL.
  • Не размещайте комментарии после символа-завершителя команды SQL*Plus (точки, точки с запятой или косой).
  • Не размещайте символы-завершители команды в конце строки комментария или после комментария в SQL-операторе или PL/SQL-блоке.
  • Не используйте в комментариях метасимвол &, - утилита SQL*Plus потребует ввести значение параметра, проинтерпретировав слово после символа & в качестве имени параметра.
  • Рассмотрим пример командного файла, использующего все виды комментариев:

    -- Это однострочный комментарий SQL*Plus

    set linesize 128; REM И это тоже однострочный комментарий SQL*Plus

    select ename, empno /* Это многострочный ** комментарий в ** SQL-операторе */

    from emp -- однострочный комментарий в SQL-операторе

    where sal = 5000;

    Вот результат его выполнения:

    SQL> @f:\tmp.txt

    ENAME EMPNO ---------- ---------- KING 7839



    Содержание раздела