Si vous essayez d'exécuter une requête multiligne dans SQLcl ou SQL*Plus et que vous obtenez constamment une erreur telle que "Commande inconnue", mais que son exécution dans SQL Developer ne provoque pas une telle erreur, peut-être que ce message vous aidera.
Par défaut, SQLcl et SQL*Plus n'autorisent pas les lignes vides dans les instructions SQL. Cependant, vous pouvez changer cela avec le SET SQLBLANKLINES
commande.
Syntaxe
La syntaxe ressemble à ceci :
SET SQLBL[ANKLINES] {ON | OFF}
Cela signifie que vous pouvez utiliser soit le SQLBLANKLINES
complet ou sa forme abrégée SQLBL
, et vous pouvez le définir sur ON
ou OFF
.
C'est OFF
par défaut. Le mettre sur ON
vous permettra d'inclure des lignes vides dans votre code.
Exemple
Tout d'abord, je vais vérifier mon paramètre actuel :
SHOW SQLBLANKLINES
Résultat :
sqlblanklines OFF
Actuellement, la prise en charge des lignes vides est désactivée.
Supposons que nous ayons l'instruction SQL suivante :
SELECT 3 * 10
FROM DUAL;
Voici ce qui se passe si je copie et colle cela dans SQLcl et que j'essaie de l'exécuter :
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
L'instruction échoue en raison de la ligne vide.
Définir SQLBLANKLINES
sur ON
Définissons maintenant SQLBLANKLINES
sur ON
:
SET SQLBLANKLINES ON
Et relancez la requête :
SELECT 3 * 10
FROM DUAL;
Voici maintenant ce que j'obtiens :
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Cette fois, l'instruction réussit.
Formulaire abrégé
Vous pouvez également utiliser la forme abrégée SQLBL
.
Exemple de retour du paramètre actuel :
SHOW SQLBL
Résultat :
sqlblanklines ON
Exemple de désactivation et de réaffichage :
SET SQLBL OFF
SHOW SQLBL
Résultat :
sqlblanklines OFF