Oracle
 sql >> Database >  >> RDS >> Oracle

Script SQL*Plus eseguito due volte

Fai in modo che il tuo script lo faccia;

DELETE FROM f2020.SOCIETES
/

o

DELETE FROM f2020.SOCIETES;

senza la barra.

Dalla documentazione :

e nell'esempio più in basso:

... che è esattamente quello che stai vedendo.

Altrove in quei documenti :

Come molti client, SQL*Plus tratta il punto e virgola alla fine dell'istruzione SQL come un separatore di istruzioni:non parte dell'istruzione stessa (che causa un po' di confusione, ad esempio, per le chiamate dinamiche SQL e JDBC) - e quando la vede esegue il comando. L'istruzione eseguita rimane nel buffer dei comandi; e se list per vedere il buffer dei comandi corrente, non mostrerà quel punto e virgola. Quando emetti una barra, esegue di nuovo il buffer.

Le cose sono leggermente diverse per PL/SQL; lì il blocco PL/SQL deve essere terminato con un punto e virgola, che è parte del blocco e appare nel buffer. Devi usare una barra per esegui un blocco PL/SQL .