Search this forum for "Cron Problem Number One" to find the one or other gazillion of threads dealing with this. The main problem is this line:
status=`sqlplus -s "${pass} as sysdba" <<~EOF
because: how should the system know where "sqlplus" is, without a PATH variable being set (which isn't set when executed from cron
), hmm?
Gladly so: first, get rid of the obnoxious backticks and use POSIX-means to do it:
`command1 | command2 | command3` # wrong!
$(command1 | command2 | command3) # correct!
Further advice might be given once you show us the complete script instead of a snippet. For a snippet of a script you only get a snippet of advice. ;-))
I hope this helps.
bakunin