1

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?

1 Answer 1

1

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? Commented Feb 20, 2020 at 8:34
  • @ShantharamPuranik, you can store it in file. Check spool command (in sqlplus) Commented Feb 20, 2020 at 8:44

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.