Ввод

Ввод SQL-операторов в интерактивном режиме выполняется по следующим правилам:

  1. ввод SQL-оператора должен начинаться после приглашения inl;

    SQL >select count(*) from auto;
  2. если текст SQL-оператора не умещается на одной строке консоли, он может быть продолжен на следующих строках;

  3. прекращение ввода текущей строки и переход на следующую строку выполняется по клавише < Enter >;

  4. переход на следующую строку должен выполняться только на границах лексем SQL-оператора, т.е. разрыв ключевых слов, имен таблиц, столбцов, идентификаторов и т.п. не допускается;

  5. продолжение ввода SQL-оператора должно выполняться после приглашения inl (выдается порядковый номер строк продолжения):

    SQL > update DEPT_SUMMARY s
    1 >set NUM_EMPS = (
    2 >select count(1)
    3 >from EMP E
    4 >where E.DEPTNO = S.DEPTNO);
  6. пробелы, введенные в начале и/или в конце текста SQL-оператора, игнорируются;

  7. строки, состоящие полностью из пробелов и/или знаков табуляции, игнорируются;

  8. текст SQL-оператора должен заканчиваться знаком «;» (в конце текущей строки либо на следующей строке продолжения);

  9. неотображаемый на консоли комментарий SQL-скрипта задается:

    • символом «;» в начале строки, например,

      ; Это неотображаемый комментарий
    • после символов «//» в конце строки

      Table AUTO; //Проверить выполнение;

      Примечание

      Символы «//» являются комментарием sql, а не комментарием inl.

    • после символов «--» в конце строки

      SELECT * FROM AUTO; -- Пример SQL-запроса;
  10. строчный отображаемый на консоли комментарий SQL-скрипта задается двойным символом «–» в начале строки, например:

    -- Это строчный отображаемый комментарий

    или с помощью команды «! » утилиты inl:

    ! Это отображаемый комментарий
  11. строчный комментарий:

    • можно использовать только в отдельных строках или внутри SQL-запроса, но не после точки с запятой в той же строке, например,

      SELECT count(*) -- количество записей FROM AUTO;
    • должен заканчиваться знаком «;», если он относится к законченному SQL-оператору;

    • не должен заканчиваться знаком «;», если это не последний оператор текста хранимой процедуры.

    В противном случае (если знак «;» отсутствует), будут проигнорированы все строки до первой последующей строки, которая заканчивается знаком «;» включительно, либо до конца входного файла;

  12. ввод SQL-оператора CREATE PROCEDURE … имеет свои особенности, связанные с тем, что тело хранимой процедуры задается на процедурном языке СУБД ЛИНТЕР, в котором разделение операторов также выполняется по символу ';'. Чтобы избежать коллизий и не начать преждевременное выполнение SQL-оператора при обнаружении во вводимом тексте символа ';', необходимо для всех таких операторов задавать признак продолжения '//' ввода тела хранимой процедуры, как, например, в этом примере:

    SQL >create procedure Proc1(in p int) result int
    1 > code
    2 > return p+3; //
    3 > end;
    

    Примечание

    Если текст триггера (хранимой процедуры) записывается в SQL-скрипте, признаки продолжения тела триггера (процедуры) не ставятся (см. команду CREATE TRIG (CREATE PROC)).