How, if possible, can an .sql file be executed against an oracle database from a bash script

Posted on

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).

Leave a Reply

Your email address will not be published. Required fields are marked *