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)
1 Answer 1
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).
-
1+1, you should also use the
-L
option so that sqlplus will return immediately with an error if it fails to login.Vincent Malgrat– Vincent Malgrat2012年06月28日 15:17:06 +00:00Commented Jun 28, 2012 at 15:17 -
The Or part of your answer, with sqlplus user/pass@server/DATABASE @yoursqlscript works putting the statement (with an ending ";") at the beginning of the scripta1an– a1an2012年06月28日 15:58:24 +00:00Commented Jun 28, 2012 at 15:58