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  
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  
Is PO_TOP a variable name in a PL/SQL script?
# 3  
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  
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  
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  
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  
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.
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #685
Difficulty: Medium
Reverse Polish notation (RPN), also known as Polish programming notation.
True or False?

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 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. Shell Programming and Scripting

passing parameter 4m shell script to a DB stored procedure

hi all please tell me how to pass parameters 4m shell script to a DataBase stored procedure. To be specific i have sybase DB. i mean i want the syntax of the command.. how to connect to DB, pass user id and password, pass the required parameter to SP.. .. need ur help frnds.. hema (0 Replies)
Discussion started by: hema2026
0 Replies

Featured Tech Videos