Ако се опитвате да изпълните многоредова заявка в SQLcl или SQL*Plus и продължавате да получавате грешка като „Неизвестна команда“, но изпълнението й в SQL Developer не причинява такава грешка, може би тази публикация ще помогне.
По подразбиране SQLcl и SQL*Plus не позволяват празни редове в SQL изрази. Можете обаче да промените това с SET SQLBLANKLINES
команда.
Синтаксис
Синтаксисът е така:
SET SQLBL[ANKLINES] {ON | OFF}
Това означава, че можете да използвате или пълния SQLBLANKLINES
или неговата съкратена форма SQLBL
, и можете да го зададете на ON
или OFF
.
Това е OFF
по подразбиране. Задаване на ON
ще ви позволи да включите празни редове във вашия код.
Пример
Първо, ще проверя текущата си настройка:
SHOW SQLBLANKLINES
Резултат:
sqlblanklines OFF
Понастоящем поддръжката за празни редове е деактивирана.
Да предположим, че имаме следния SQL израз:
SELECT 3 * 10
FROM DUAL;
Ето какво се случва, ако го копирам и поставя в SQLcl и се опитам да го изпълня:
SQL> SELECT 3 * 10 2 3* FROM DUAL; Error starting at line : 1 in command - SELECT 3 * 10 Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action: Error starting at line : 1 in command - FROM DUAL Error report - Unknown Command
Изявлението е неуспешно поради празен ред.
Задайте SQLBLANKLINES
до ON
Сега нека зададем SQLBLANKLINES
до ON
:
SET SQLBLANKLINES ON
И стартирайте заявката отново:
SELECT 3 * 10
FROM DUAL;
Ето какво получавам:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Този път изявлението е успешно.
Стенописен формуляр
Като алтернатива можете да използвате съкратената форма SQLBL
.
Пример за връщане на текущата настройка:
SHOW SQLBL
Резултат:
sqlblanklines ON
Пример за изключване и показване отново:
SET SQLBL OFF
SHOW SQLBL
Резултат:
sqlblanklines OFF