Oracle
 sql >> Base de données >  >> RDS >> Oracle

SET SQLBLANKLINES :comment autoriser les lignes vides dans SQLcl et SQL*Plus

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