Lorsque vous saisissez une instruction SQL dans SQL * Plus, elle doit savoir quand vous en avez terminé, en particulier si la commande s'étend sur plusieurs lignes. Par conséquent, il nécessite un caractère de caractère terminal qui peut être défini avec le set sqlterminator
. Par défaut, ce caractère est le point-virgule:
SQL> select *
2 from
3 dual;
D
-
X
Maintenant, changer ce caractère terminal en un #
:
SQL> set sqlterminator #
SQL> select *
2 from
3 dual#
D
-
X
L'instruction SQL s'est terminée (fin exécutée) par un #
.
Vous demandez: pourquoi n'a set sqlterminator #
pas été suivi d'un point-virgule? Répondez, car ce n'est pas une instruction SQL. Les instructions qui se rapportent à SQL * Plus et à son comportement, à la sortie, à la connexion asf (comme set echo on
et connect system/manager
) ne sont pas des instructions SQL et sont donc entrées sans le point-virgule.
Qu'est-ce que cela a à voir avec le /
?
Lorsque vous avez entré une instruction SQL, SQL * plus a rempli ce qu'il appelle un tampon. Ce tampon peut être affiché avec la list
commande:
SQL> list
1 select *
2 from
3* dual
SQL>
(Remarque: je n'ai entré que la liste , le reste est retourné)
L' /
exécute maintenant ce qui est actuellement dans le tampon. Essayons cela:
SQL> /
D
-
X
Comme on peut le voir, la même requête est exécutée.