Puede canalizar la palabra exit
en la línea de comandos de SQL*Plus. Por ejemplo, si demo.sql
consiste en esto:
prompt This is my demo script
Entonces puedes llamarlo así:
echo exit | sqlplus william/w @demo.sql
Salida:
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>
O usando -s
Opción (silenciosa) para suprimir banners, etc.:
Y:\SQL>echo exit | sqlplus -s william/w @demo.sql
This is my demo script
Y:\SQL>
Probado con SQL*Plus 12.2 en Windows 10.
(De https://serverfault.com/q/87035/352734 - resulta que funciona tanto en Windows como en Linux).
También puede buscar opciones para evitar el manejo de nombres de usuario y contraseñas, p. aquí:https://dba.stackexchange.com/a/109170/103604