Hi,
to connect to all 5 databases you have to put the sqlplus command inside the loop and have the variables ORACLE_SID and ORACLE_HOME assigned. Your script assigns ORACLE_SID 5 times, overwriting the previous value with each iteration of the loop.
Then the same happens to your ORACLE_HOME variable and finally you connect to the last database found. This is a starting point how I'd rewrite your script:
Code:
OLD_PATH=$PATH
ps -fea | grep '[_]pmon[_]' | while read -r line; do
# Assign the ORACLE_SID
ORACLE_SID="${line##*_pmon_}"; export ORACLE_SID
echo "My db :" $ORACLE_SID
#Find ORACLE_HOME info for current instance
ORACLE_HOME=$(dbhome $ORACLE_SID); export ORACLE_HOME
echo "my Home:" $ORACLE_HOME
# Put $ORACLE_HOME/bin into PATH and export
PATH=$ORACLE_HOME/bin:$OLD_PATH; export PATH
sqlplus -s <<EOF
connect / as sysdba
select instance_name,status,database_status from v\$instance;
select * from v\$version;
EOF
done
Hi All,
I want to connect two tables in DB2 using shell script and then compare the contents of two tables field by field. Could any one please help me in connecting database tables using Unix and retriving data from the same.
Thanks,
Durwas (0 Replies)
Hello all, I know that is a question which has made too many times, and I have been looking into the threads but all posted was not sucessfully for me so...
I need a shell script which connect two unix servers, but NOT using ssh... Is there another way to do it?
I've tried ssh but it didn't... (1 Reply)
Hi
I am not so good in scripting..trying ot learn it...need guidance of the experts in shell scripting..
Let me explain the scenario first..
a server MX1 is connected to another server MX2 through vpn..every 5 minute a script runs to test vpn connectivity between the 2 servers.when the vpn... (12 Replies)
Hi,
I want to connect to oracle db using unix shell script. And i want to retrieve data from db through shell script.
Please help me as soon as possible.
Thanks,
J.P. Das (1 Reply)
Guys,
I am trying to write a shell script that connect to wcsprod database and read the query
#!/bin/ksh
sqlplus -s < connect to wcsprod user wcsadm using pwd >
select * from catentry fetch first 1 row only with ur;
databse: wcsprod
user: wcsadm
pwd: pwd
thanks (1 Reply)
Hi Unix Gurus,
I have a requirement to write a script, Oracle DB gets referesh every 6hrs, hence we need write a script to connect to the database , if it connects it should generate a file to proceed the next job application or when an error when connectiong to DB it should not generate any... (8 Replies)
Hi All,
I am newbie to unix shell scripting. I want to connect to oracle database using shell script. I know how to connect DB using user name and password but my question is if my password is having '@' sign then how to connect.
I have tried like below,
cnt=`sqlplus -s /nolog << EOFSQL
... (3 Replies)
Dear Experts,
I am new to the shell scripting.
I am looking for a shell script to connect to one Unix/Linux server1 to other Unix/Linux server2 and trigger a SAP Event in that server2 (Which will trigger a job in SAP).
Is this possible to connect from one server to the other server securely... (7 Replies)
Hi Master,
I need to create dan run script in linux to get data from teradata
I did this
---------- Post updated at 02:28 AM ---------- Previous update was at 02:25 AM ----------
LOG_DIR="/home/";
OUTDIR="/home/";
SCRIPT_NAME=“test";
DUMPFILE="${OUTDIR}${SCRIPT_NAME}"_"$(date... (2 Replies)
Hi,
I am facing an issue in connecting to database from Linux shell script. Here is my code
export ORACLE_BASE=xxx
export ORACLE_SID=xxx
export ORACLE_HOME=xxxx
DB_PATH=xxx/'yyy@yy'
UserId=`sqlplus -s $DB_PATH <<EOF
set head off feedback off
select max(USER_ID)+1 from USERS;... (6 Replies)
Discussion started by: yuvi
6 Replies
LEARN ABOUT SUSE
which
WHICH(1) General Commands Manual WHICH(1)NAME
which - shows the full path of (shell) commands.
SYNOPSIS
which [options] [--] programname [...]
DESCRIPTION
Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been exe-
cuted when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories
listed in the environment variable PATH using the same algorithm as bash(1).
This man page is generated from the file which.texinfo.
OPTIONS --all, -a
Print all matching executables in PATH, not just the first.
--read-alias, -i
Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For
example
alias which='alias | which -i'.
--skip-alias
Ignore option `--read-alias', if any. This is useful to explicity search for normal binaries, while using the `--read-alias' option in
an alias or function for which.
--read-functions
Read shell function definitions from stdin, reporting matching ones on stdout. This is useful in combination with using a shell func-
tion for which itself. For example:
which() { declare -f | which --read-functions $@ }
export -f which
--skip-functions
Ignore option `--read-functions', if any. This is useful to explicity search for normal binaries, while using the `--read-functions'
option in an alias or function for which.
--skip-dot
Skip directories in PATH that start with a dot.
--skip-tilde
Skip directories in PATH that start with a tilde and executables which reside in the HOME directory.
--show-dot
If a directory in PATH starts with a dot and a matching executable was found for that path, then print "./programname" rather than the
full path.
--show-tilde
Output a tilde when a directory matches the HOME directory. This option is ignored when which is invoked as root.
--tty-only
Stop processing options on the right if not on tty.
--version,-v,-V
Print version information on standard output then exit successfully.
--help
Print usage information on standard output then exit successfully.
RETURN VALUE
Which returns the number of failed arguments, or -1 when no `programname' was given.
EXAMPLE
The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like the following:
[ba]sh:
which ()
{
(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
export -f which
[t]csh:
alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
This will print the readable ~/ and ./ when starting which from your prompt, while still printing the full path when used from a script:
> which q2
~/bin/q2
> echo `which q2`
/home/carlo/bin/q2
BUGS
The HOME directory is determined by looking for the HOME environment variable, which aborts when this variable doesn't exist. Which will
consider two equivalent directories to be different when one of them contains a path with a symbolic link.
AUTHOR
Carlo Wood <carlo@gnu.org>
SEE ALSO bash(1)WHICH(1)