Ввод
Ввод 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;