Help Passing An Oracle parameter to a unix shell.


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help Passing An Oracle parameter to a unix shell.
# 1  
Old 11-25-2009
Help Passing An Oracle parameter to a unix shell.

I have an Oracle concurrent program that I'm passing a parameter to a unix shell script. An example value of the Oracle parameter is PO_TOP. The Oracle parameter represents the unix env var PO_TOP, meaning, on the unix side there is env var called PO_TOP (ex value: /oradev/apps/po/11.0.3/). My goal is to passed the Oracle parameter to the unix script and have it behave like the unix env var $PO_TOP.

Example of the code in the script.
ora_base_dir=$1
echo "ora_base_dir: "$ora_base_dir
cd $ora_base_dir

--
This fails with a directory does not exist
the echo displays "ora_base_dir: PO_TOP"

Here is some examples of the not so brilliant stuff that I have tried:
ora_base_dir=$$1
ora_base_dir=$\$1
ora_base_dir=${$1}

All failed.

Can you pass the name of a unix env variable to a unix shell script and then set a new unix var to the passed variable?

Note: I'm trying to avoid using
IF $1= 'PO_TOP' THEN
ora_base_dir=$PO_TOP
ELSIF $1 = 'FND_TOP' THEN
ora_base_dir=$FND_TOP.....etc

There are over 200 unix TOP variables.
# 2  
Old 11-25-2009
Is PO_TOP a variable name in a PL/SQL script?
# 3  
Old 11-25-2009
No. It is a parameter in an Oracle current program. The Oracle current program is a host script; In this case it will be a unix shell script. No sql or pl/sql is involved.
# 4  
Old 11-25-2009
There are several ways to pass variables out of a shell script
one:
Code:
# write the variables
( echo "PO_TOP=/somedir/somewhere"
  echo "UO_TOP=/anotherdir/somewhere"
) > env.txt
# if you want aboslutely everything in the environment
env > env.txt

Code:
# get the variables
while read cmd
do
   eval $cmd
done < env.txt

Another way is to have script that needs to get the variables sourced by the script that creates them:

Code:
#!/bin/ksh
# i am the script that needs my env vars set

. ./otherscript.sh     # this script creates them and does other work.
# i now have all my variables set

# 5  
Old 11-25-2009
Thx, Jim. I don't think I'm clear on what I'm asking.
But basically, I'm passing the name of unix env var from my Oracle current program to the unix shell. To the shell script; it is $1 parameter.

If I do "echo $1". It will display PO_TOP. If I do "cd $1" it fails because the directory PO_TOP does not exist.

There is an unix env var call PO_TOP If do I "echo $PO_TOP". It will display "/oradev/apps/po/11.0.3". If I do "cd $PO_TOP" it works because the directory exists.

I'm bascially wanting to pass the name of unix env var to a shell script.
# 6  
Old 11-25-2009
Hi,
You mean that You want to pass the name of a variable but use the value ,right?
Can You pass in $PO_TOP instead of PO_TOP?

Otherwise, maybe You can use something like

Code:
eval cd '$'$1

This would "build" a command (resulting in "cd $PO_TOP" or actually "cd /oradev/apps/po/11.0.3") from evaluating its components and execute it.

/Lakris
# 7  
Old 11-25-2009
Thxs Lakris, this is exactly what I want to do. The eval cd '$'$1 works like a champ. How can I set it to an unix var. Example:

ora_base_dir=eval cd '$'$1

I know the above does not work; but that is what I like to do.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Passing output parameter(Oracle) to variable in ksh Script

Hello, I have researched and tried many way to pass OUT parameter to be stored in variable in KSH Script.Still not success, please help. Here is my Store Procedure. create procedure testout3(v_in varchar2,v_out OUT integer) as begin v_out := 1; end; Here is my testvout.ksh #!/bin/ksh... (1 Reply)
Discussion started by: palita2601
1 Replies

2. Shell Programming and Scripting

Passing a command shell parameter to another shell

Good afternoon, i need your help pls I want to write a new script that start running as soon as a previus one finish via Autosys (it should be implemented via Autosys too to validate the exsitance and the successful transfered file to a remote server Whenever the file arrives to the path... (2 Replies)
Discussion started by: alexcol
2 Replies

3. Shell Programming and Scripting

Passing parameter with single quote to shell script

Hello All, I am trying below +++++++++ #/bin/bash set -x Host=$1 Port=$2 User=$3 Pass=$4 Warning=$5 Critical=$6 SCRIPT_LOC=/opt/agent/ Parameters="'""hostname=$Host&""port=$Port&""username=$User&""password=$Pass&""jvm=UsedMemory,$Warning,$Critical""'" echo $Parameters... (10 Replies)
Discussion started by: sundari127
10 Replies

4. Shell Programming and Scripting

Passing a parameter from a shell script to sqlplus

Hi All, I'm new to Linux and scripting, apologies in advance for 'stupid' questions. Please help... Im writing a script that calls a sqlplus script but the sqlplus requires inputs and i cant seem to get this to work. here is my code. #!/bin/sh TERM=vt100 export TERM... (4 Replies)
Discussion started by: Mahomed
4 Replies

5. Shell Programming and Scripting

Passing sql as parameter to unix function

Hi, I have a function which connects to the db and runs the sql. it works fine when I run it like: function "select empname from emp;" but when I try to pass the sql string to a variable which in turn in fed to the function , it throws error. please advise. Thanks, Arnie. (1 Reply)
Discussion started by: itsarnie
1 Replies

6. Shell Programming and Scripting

Passing parameter in background shell

Hi All, i've a shell script, where it will run in the background, i'm using. system("sh $Home/S_SCRIPT/cck.sh $shell_dum_file &"); i'm passing a parameter $shel_dum_file to the background process. In shell script , i'm using. #!/bin/sh FILE=$1 echo "FILE NAME- $FILE" this shell... (2 Replies)
Discussion started by: asak
2 Replies

7. Shell Programming and Scripting

Passing Parameter containing space in between to Shell Script

Hi, I have one shell script which use two parameter however one of its parameter have space in between. eg. a.sh 20110114 b c d here b c d is one parameter I used 'b c d' but its not giving correct result. Also i tried b\c\d but this one also didnt work. Any help would be... (5 Replies)
Discussion started by: diehard
5 Replies

8. SCO

Parameter passing to dot shell script

OS SCO Open Server 6.0 MP4 I am trying to change the value of a enviornment variable thru a script and want to pass a parameter on the commande line, If I hard code the value inside the script the script changes the enviornment variable . mytest where my test is MYVAR=$1 export MYVAR... (6 Replies)
Discussion started by: atish0
6 Replies

9. AIX

Passing a parameter to a shell script?

I would like to run a compress script on files in certain directories. My compress_script.sh is just basically compress file* In order for me to use this I have to copy it into each directory and run it. How can I state the directory on the command line with the compress script so it... (2 Replies)
Discussion started by: NycUnxer
2 Replies

10. Shell Programming and Scripting

Passing parameter from one file to shell script

Hi All, I have a 2 files. File1 i am generating using an ETL tool, which is a comman seperated delimited file which contains country code & load date. everytime, this country code will be updated from a table. It might be AB or BA & ld_date will be for which date we need to load the file. ... (7 Replies)
Discussion started by: Amit.Sagpariya
7 Replies
Login or Register to Ask a Question