Você pode canalizar a palavra
exit
na linha de comando do SQL*Plus. Por exemplo, se demo.sql
consiste nisso:prompt This is my demo script
Então você pode chamar assim:
echo exit | sqlplus william/w @demo.sql
Resultado:
Y:\SQL>echo exit | sqlplus william/w @demo.sql
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jan 13 10:47:13 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Last Successful login time: Sun Jan 13 2019 10:46:03 +00:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
This is my demo script
SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Y:\SQL>
Ou usando o
-s
opção (silenciosa) para suprimir banners etc:Y:\SQL>echo exit | sqlplus -s william/w @demo.sql
This is my demo script
Y:\SQL>
Testado com SQL*Plus 12.2 no Windows 10.
(De https://serverfault.com/q/87035/352734 - acontece que funciona no Windows e no Linux.)
Você também pode procurar opções para evitar o manuseio de nomes de usuário e senhas, por exemplo aqui:https://dba.stackexchange.com/a/109170/103604