Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Script SQL*Plus executado duas vezes


Faça o seu script também;
DELETE FROM f2020.SOCIETES
/

ou
DELETE FROM f2020.SOCIETES;

sem a barra.

Da documentação :

e no exemplo mais abaixo:

... que é exatamente o que você está vendo.

Em outros lugares desses documentos :

Como muitos clientes, o SQL*Plus trata o ponto e vírgula no final de sua instrução SQL como um separador de instrução - não parte da própria instrução (o que causa alguma confusão para, por exemplo, chamadas dinâmicas de SQL e JDBC) - e quando a vê, executa o comando. A instrução executada permanece no buffer de comando; e se você list para ver o buffer de comando atual, ele não mostrará esse ponto e vírgula. Quando você emite uma barra, ele executa o buffer novamente.

As coisas são um pouco diferentes para PL/SQL; lá o bloco PL/SQL deve ser finalizado com um ponto e vírgula, que é parte do bloco e aparece no buffer. Você precisa usar uma barra para executar um bloco PL/SQL .