Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

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)

share|improve this question

1 Answer 1

up vote 5 down vote accepted

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

share|improve this answer
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 Jun 28 '12 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 script –  a1an Jun 28 '12 at 15:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.