Re: Why isn't my script running?

You should use . oraenv as Mark suggested. By hard coding the ORACLE_HOME, you run the risk of breaking the script when you upgrade Oracle and/or move to a new ORACLE_HOME.

If you use oraenv, you have a tremendous amount of flexibility in scripting. Maintain your oratab and you don't worry about changing ORACLE_HOMEs and the same script can be used for multiple databases (pass in the ORACLE_SID as a parameter).

If you aren't going to use oraenv, you can remove the ORAENV_ASK line...

Regards,
Daniel Fink

--
Daniel Fink

OptimalDBA.com - Oracle Performance, Diagnosis, Data Recovery and Training

OptimalDBA    http://www.optimaldba.com
Oracle Blog   http://optimaldba.blogspot.com

Lost Data?    http://www.ora600.be/


Eugene Pipko wrote:
Thank you,
I exported $ORACLE_HOME and it worked:

#!/bin/ksh
USER=SYSTEM
PASSWORD=test
export ORACLE_HOME=/prod/oraprd/product/9.2.0
export ORACLE_SID=SPIPRD
export ORAENV_ASK=NO

$ORACLE_HOME/bin/sqlplus -s $USER/$PASSWORD <<EOF
set feed off
set head off
set pagesize 0
exec dbms_stats.gather_schema_stats('TEST',ESTIMATE_PERCENT=>30,CASCADE=>TRUE)
exit;
EOF

Eugene Pipko
  Please consider the environment before printing this e-mail.


-----Original Message-----
From: Bobak, Mark [mailto:Mark.Bobak@xxxxxxxxxxxx] Sent: Wednesday, February 25, 2009 10:34 AM
To: Eugene Pipko; 'Mercadante, Thomas F (LABOR)'
Cc: 'oracle-l@xxxxxxxxxxxxx'
Subject: RE: Why isn't my script running?

Well, there you go, sqlplus not found.

That means PATH was not modified to contain $ORACLE_HOME/bin.

Most likely cause is that you didn't run '. oraenv'.

A quick look at your script, and sure enough, you set:
export ORACLE_SID=SPIPRD
export ORAENV_ASK=NO

But you neglect to actually call '. oraenv' to setup the correct environment.

Try adding:
. oraenv

immediately following:
export ORAENV_ASK=NO

in your script.


That ought to do it,

-Mark


--
http://www.freelists.org/webpage/oracle-l


Other related posts: