Quando si immette un'istruzione SQL in SQL * Plus, è necessario sapere quando si è terminata, specialmente se il comando si estende su più righe. Pertanto, richiede un carattere di carattere terminale che può essere impostato conset sqlterminator
. Per impostazione predefinita, questo carattere è il punto e virgola:
SQL> select *
2 from
3 dual;
D
-
X
Ora, cambiando questo carattere terminale in a #
:
SQL> set sqlterminator #
SQL> select *
2 from
3 dual#
D
-
X
L'istruzione SQL è stata terminata (fine eseguita) con a #
.
Tu chiedi: perché set sqlterminator #
non è stato seguito da un punto e virgola? Risposta, perché questa non è un'istruzione SQL. Dichiarazioni relative a SQL * Plus e al suo comportamento, output, connessione asf (comeset echo on
e connect system/manager
) non sono istruzioni SQL e vengono quindi immesse senza il punto e virgola.
Cosa c'entra questo con /
?
Quando hai inserito un'istruzione SQL, SQL * plus ha riempito qualcosa che chiama buffer. Questo buffer può essere mostrato con il list
comando:
SQL> list
1 select *
2 from
3* dual
SQL>
(Nota: ho inserito solo l' elenco , il resto viene restituito)
L' /
ora esegue ciò che è attualmente nel buffer. Proviamo che:
SQL> /
D
-
X
Come si può vedere, viene eseguita la stessa query.