Simpler Navigation for Servers and Operating Systems - Please Update Your Bookmarks
Completed: a much simpler Servers and Operating Systems section of the Community. We combined many of the older boards, so you won't have to click through so many levels to get at the information you need. Check the consolidated boards here as many sub-forums are now single boards.
If you have bookmarked forums or discussion boards in Servers and Operating Systems, we suggest you check and update them as needed.
General
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling sqlplus scripts from unix

Brian Gebhard
Occasional Advisor

Calling sqlplus scripts from unix

Inside an Unix script I call a sqlplus script and pass 6 parameters. Inside the sqlplus script I use &1 - &6. I call multiple sqlplus scripts inside the 1st sqlplus script using &1-&6 as the paramters. I call 3 different ones one using &1 &2, 2nd using &3 &4, 3rd using &5 &6. Now when i call my 4th sqlplus plus script I try using &1 again but instead of using the original value of &1 it uses the value of &5. My believe is that once I call another sqlplus script that takes arguments, it then resets &1 to that current value for all lvls. Therefore when I come back up one lvl and try to use the old value for &1 it has been reset to the whatever the value was that I used when calling the last sqlplus script. Is this how it is supposed to work or am I am doing something wrong. Or is there another way to do this.

unix script
sqlplus_script_1 v1 v2 v3 v4 v5 v6
sqlplus_script_1_1 &1 &2
sqlplus_script_1_2 &3 &4
sqlplus_script_1_3 &5 &6
(ALL THE ABOVE SCRIPTS WORK FINE)
sqlplus_script_1_4 &1 &2
(Now sqlplus_script_1_4 uses the value for v5 and v6 instead of using v1 v2.)

Is this how it is supposed to work.



4 REPLIES
Volker Borowski
Honored Contributor

Re: Calling sqlplus scripts from unix

Hi brian,
I think the problem is, by calling those scripts, you reassign values to &1 &2 all the time. May be you schould print &1 &2 between those calls. I think it will show them destroyed after the second call.

You schould save the values after the first call:
DEFINE P1 = &1
DEFINE P2 = &2
...

and call your scripts with those variables.

Hope this helps
Volker
Joseph C. Denman
Honored Contributor

Re: Calling sqlplus scripts from unix

I agree that that would fix your problem. If you set up the variables as state. script 4 could be executed as:

sqlplus_script_1_4 ${P1} ${P2}

If I had only read the instructions first??
Brian Gebhard
Occasional Advisor

Re: Calling sqlplus scripts from unix

Thank you for your help. I changed the script and set those 6 arguments to variables and it works fine now.
Volker Borowski
Honored Contributor

Re: Calling sqlplus scripts from unix

How about points ?
Just to keep in mind how this forum works.
Best Regards
Volker