0

I'm trying to do this:

In sample.sh:

#!/bin/bash
sqlplus / as sysdba
select * from dual;

And just when I run this shell script, it opens sqlplus utility, but it cannot execute the next line that I have written. When I manually exit out of sqlplus, only then the shell executes the remaining line and I get error message saying 'Select * from dual' is not a valid command.

How can I make the script execute the SQL text within the context of sqlplus?

0

To run sql script in sqlplus you need to do it on this way:

#!/bin/bash
sqlplus / as sysdba <<EOF
select * from dual;
exit
EOF

or you can put sql commands in script like this:

# cat a.sql
select * from dual;
exit

and run the command on this way:

#!/bin/bash
sqlplus / as sysdba @a.sql
2
  • 1
    It worked, thank you! Is there a provision to read the outputs and store it in a variable? Feb 20 '20 at 8:34
  • @ShantharamPuranik, you can store it in file. Check spool command (in sqlplus) Feb 20 '20 at 8:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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