Question :
Is it possible to execute an sql file (a text file containing several SQL statements) against an oracle database from a bash shell command line (e.g. no graphical GUI and no interactive clients)
Something like:
sqlplus -f queries.sql …
The command is expected to execute all the statements in the queries.sql file and exit with an appropriate exit code (e.g. 0 if all queries executed correctly, nonzero otherwise)
Answer :
In a shell script:
#!/bin/bash
sqlplus user/pass@server/DATABASE<<THEEND
-- Change "1" to the desired fatal return code
whenever sqlerror exit 1;
@yoursqlscript.sql
quit;
THEEND
Or you can just run:
sqlplus user/pass@server/DATABASE @yoursqlscript
… and put the whenever sqlerror exit 1;
at the top of your .sql script(s).