Executing Oracle script from UNIX Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Executing Oracle script from UNIX Script
# 1  
Old 07-15-2015
Executing Oracle script from UNIX Script

Hi,

I am new to UNIX and want to execute oracle script from unix script.
I have written below script but i am getting below error.
Code:
#!/bin/bash
file="/home/usr/control/control_file1"
while read line
do
#$line=@$line
#echo $line
sqlplus tiger/scott@DB
@$line
exit
#echo "$line"
done <"$file"


Can someone please help me out to correct the error.
Thanks,
Vipin Kumar Rai

Last edited by Franklin52; 07-15-2015 at 09:49 AM.. Reason: Please use code tags
# 2  
Old 07-15-2015
Here is a script that I wrote for analyzing schemas.
This should give you a frame work for writing your script.
The set_oracle_env.sh set ORACLE_HOME, TNS_ADMIN,
LS_LIBRARY_PATH and put the $ORACLE_HOME/bin at
the beginning of the PATH.

Code:
#!/bin/bash
# set -x
# This job simply runs dbms_stats.gather_schema_stats for the given DB and
# user on the command line.  It logs into the DB as the sysdba user and is
# run from the shell as the Oracle user.  It is executed from crontab file
# and not a DB job because I don't like the drift inherent in the DB jobs.
if [ $# -lt 2 ]; then
   echo "Usage: Sid_name schema_name"
   exit 1
fi
# Set the ORACLE_SID with the first parameter.
. ${HOME}/scripts/bin/set_oracle_env.sh ${1}
export USER=$2
# Log into the DB through SQLPLUS.  You must be the oracle user.
$ORACLE_HOME/bin/sqlplus -s '/ as sysdba' << EOF
set term off
set echo off
set feedback off
begin
dbms_stats.gather_schema_stats (ownname=>'$2',granularity=>'ALL',cascade=>true);
end;
/
exit
EOF

# 3  
Old 07-15-2015
I don't see the error in your post.

From Oracle Docs:-
Code:
@{url|file_name[.ext] } [arg...]

"at" sign expects a file name or URL. Verify you are passing file name/URL.
# 4  
Old 07-16-2015
Executing Oracle script from UNIX Script

Hi, I hope this may be helpful.

We use a HP EVA SAN, and I need to run a lot of jobs to replicate a running database using RSM (Replication Solutions Manager) to put my running database into Hot backup mode, shutting down a running database etc.

In this example I need to shutdown a replicated database so that my RSM process can create a fresh replication.

You will notice that, in this case, I am using a remote shell to run the Oracle command. That is because I have a Tru64 Cluster of 5 hosts.
The RSM host agent can only run on one of the cluster members, and the database I want to shutdown is on one of the other cluster members.

Best of luck


Code:
sdunor09 #more shutdown_RPT1_rsh.ksh
#! /bin/ksh
#
##########################################################################
#
# File:         /RSM_Host_actions/UNIX_actions/shutdown_RPT1_rsh.ksh
# Usage:        Always run from a scheduled RSM job
# Author:       smckibbin
# Purpose:      This script runs an Oracle shutdown from a RSM job using rsh to cluster member sdunor10
# Version:
#               0.1 20130815 testing for RPT1 processing.
#               0.2 20130821 ready for production testing
#               0.3 20150310 revise for changed FQDN
#                         
###################################################################
# un-comment to run in debug
#set -x
###########################################################################
# set the constants
# source unix machine constants
#--------------------------------------------------------------------------
export BOX=`hostname -s | tr [A-Z] [a-z]`  MYTIME=`date '+%m-%d-%Y-%H%M'`  MO=$1  DY=$2  YR=$3
export LOGDB="/RSM_Host_actions/UNIX_actions/log/is_database_running.txt"
export ADMINS="user1@xyz.com uset2@ABC.com"
 
#this is a test to see which HOST is returned when run using rsh
#------------------------------------------------------------------
if [ `hostname -s` != "sdunor10" -o `whoami` != "root" ]; then
  echo "#########################################################"
  echo ""
  echo "This script has failed!!!!!!!"
  echo ""
  echo "You must execute this script as root from node sdunor10"
  echo ""
  echo "#########################################################"
  echo $BOX $0 |mailx -s "CANNOT run script on host other than sdunor10" $ADMINS
  #exit 1   exit with error will KILL the RSM job so exit 0 and let RSM clobber the database
  exit 0    #exit here because we don't want to run the heart of the script on the wrong host
fi
 
#------------------------------------------------------------------
# determine if the master Oracle process is running for the instance RPT1
  ps -ef | grep smon_RPT1 > $LOGDB
  # read the output file, looking for a line starting with oracle, use the value of field No. 8 
  masterdb=`more $LOGDB | awk '$1 ~ /oracle/ { print  $8 }'`
  if  [ $masterdb = ora_smon_RPT1 ]
      then
       #the master Oracle process is running, hence the database is running
       #run a remote rsh command as oracle to shut-down the database
      rsh sdunor10 '/usr/bin/su - oracle -c "/RSM_Host_actions/ORACLE_actions/RPT1_10g/stopdb_rpt1.sh"'
      exit 0
      else
       #the master Oracle process is NOT running, exit with success back to RSM
       exit0
  fi
echo "finished running script $0"
 
exit 0
#  script is  shutdown_RPT1_rsh.ksh

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Executing of UNIX script using email

Dear Unix Leads, can you please let me know is it possible to execute a shell script in UNIX machine sending an email from outlook or gmail ? or is it possible to generate a token file in UNIX by sending email which we can indirectly use to trigger script your response on this is highly... (5 Replies)
Discussion started by: mirwasim
5 Replies

2. Shell Programming and Scripting

Executing java .jar from UNIX script

I have a .jar placed in my Unix directory. The .jar creates a .csv file .I want to execute the .jar and place the output file in a target Unix directory. The Unix Script is as follows. The issue that i am facing is that the file is not being placed in the REPORTDIR=/cdunix/IQNavigator/wrk instead... (4 Replies)
Discussion started by: pankajkargeti12
4 Replies

3. Shell Programming and Scripting

How to pass Oracle sql script as argument to UNIX shell script?

Hi all, $ echo $SHELL /bin/bash Requirement - How to pass oracle sql script as argument to unix shell script? $ ./output.sh users.sql Below are the shell scripts and the oracle sql file in the same folder. Shell Script $ cat output.sh #!/bin/bash .... (7 Replies)
Discussion started by: a1_win
7 Replies

4. Shell Programming and Scripting

sh script to get unix username of person executing it

Hi, I am writing a script, and I need to incorporate some logic where I can find out the unix username of the person who is executing the script. The issue is , a particular user could have "sesu" ed into a group id. for eg. root, and then executed the script. In that case, instead of root,... (5 Replies)
Discussion started by: neil.k
5 Replies

5. UNIX for Advanced & Expert Users

Executing a shell script from windows;script present in unix

I need to execute a shell script kept in unix machine from windows. User id, password area available. For eg. There's a shell script wich moves all the logs kept in my home directory to a directory named LOGS. Now i need to get this done through windows; either using a batch file, or java... (4 Replies)
Discussion started by: rajneesh_kapoor
4 Replies

6. Shell Programming and Scripting

Executing unix script on windows through MKSToolkit

hi, I have an unix script and i'm executing from command prompt in windows. The script is exiting immediately when i call the script.But the script is getting executed at the back end. But when i type sh at command prompt i'm getting $ sign and i can see the execution of script. Is there... (5 Replies)
Discussion started by: ammu
5 Replies

7. Shell Programming and Scripting

Executing a Oracle SQL statement in a UNIX script

Hi All, I need to select one column from a table based upon the passed in parameter. I tried this: sqlplus -silent $MISP_USER << EOF set feedback off; set verify off; set sqlprompt "" SELECT mail_flag FROM dailyjobs WHERE job_name = '$1'; exit 0 EOF exit... (1 Reply)
Discussion started by: ganga.dharan
1 Replies

8. UNIX for Advanced & Expert Users

Executing SQLPLUS in UNIX Script from JAVA

Hi ALL, I would like to execute one SQL query(ORACLE) in UNIX shell script. For this I used sqlplus in script and tested locally. It worked fine. But my requiremnt is to execute the script from Java. In this case the UNIX part is working but sqlplus is not returning anything The JAVA code used... (0 Replies)
Discussion started by: anooptech
0 Replies

9. Shell Programming and Scripting

Doubt on Executing unix commands in script

How can I execute the unix command "cd - Change directory" command, so that my command prompt should be reflected for that change. Example : Now you are in your home directory i.e /home/naresh and you have some sub directory called unixinfo in your home directory. i want to write a script,so... (2 Replies)
Discussion started by: Naresh Kumar
2 Replies

10. UNIX for Advanced & Expert Users

Executing a .dll from a Unix script

Is it possible for a Unix script to execute a .dll. If so, where would I find information/examples of how to do that? Thanks, in advance, for any help. :rolleyes: (2 Replies)
Discussion started by: BCarlson
2 Replies
Login or Register to Ask a Question