Ввод
Ввод SQL-операторов в интерактивном режиме выполняется по следующим правилам:
-
ввод SQL-оператора должен начинаться после приглашения inl;
SQL >select count(*) from auto;
-
если текст SQL-оператора не умещается на одной строке консоли, он может быть продолжен на следующих строках;
-
прекращение ввода текущей строки и переход на следующую строку выполняется по клавише < Enter >;
-
переход на следующую строку должен выполняться только на границах лексем SQL-оператора, т.е. разрыв ключевых слов, имен таблиц, столбцов, идентификаторов и т.п. не допускается;
-
продолжение ввода 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);
-
пробелы, введенные в начале и/или в конце текста SQL-оператора, игнорируются;
-
строки, состоящие полностью из пробелов и/или знаков табуляции, игнорируются;
-
текст SQL-оператора должен заканчиваться знаком «;» (в конце текущей строки либо на следующей строке продолжения);
-
неотображаемый на консоли комментарий SQL-скрипта задается:
-
символом «;» в начале строки, например,
; Это неотображаемый комментарий
-
после символов «//» в конце строки
Table AUTO; //Проверить выполнение;
Примечание
Символы «//» являются комментарием sql, а не комментарием inl.
-
после символов «--» в конце строки
SELECT * FROM AUTO; -- Пример SQL-запроса;
-
-
строчный отображаемый на консоли комментарий SQL-скрипта задается двойным символом «–» в начале строки, например:
-- Это строчный отображаемый комментарий
или с помощью команды «! » утилиты inl:
! Это отображаемый комментарий
-
строчный комментарий:
-
можно использовать только в отдельных строках или внутри SQL-запроса, но не после точки с запятой в той же строке, например,
SELECT count(*) -- количество записей FROM AUTO;
-
должен заканчиваться знаком «;», если он относится к законченному SQL-оператору;
-
не должен заканчиваться знаком «;», если это не последний оператор текста хранимой процедуры.
В противном случае (если знак «;» отсутствует), будут проигнорированы все строки до первой последующей строки, которая заканчивается знаком «;» включительно, либо до конца входного файла;
-
-
ввод 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)).