magento
asked on
Oracle help with Linux
Hi ,
I am using Oracle procedures in my shellscript .
Can you advice how to get the return values from the Oracle plsql to proceed further on the shell scripting?
Or in case any error happened during PLSQL , how to get the error code /resturn status and handle the exceptions?
Thanks
I am using Oracle procedures in my shellscript .
Can you advice how to get the return values from the Oracle plsql to proceed further on the shell scripting?
Or in case any error happened during PLSQL , how to get the error code /resturn status and handle the exceptions?
Thanks
Try something like this:
Result=`sqlplus -s userid/passwd <<EOSQL
var var1 number;
exec myProc( :var1 out number);
print :var1
exit
EOSQL`
ASKER
Hi Mike,
So if i check for return value in line 7 i will get the return status right ...echo $? (0=success other =failure)
So if i check for return value in line 7 i will get the return status right ...echo $? (0=success other =failure)
ASKER
Hi Slightwv,
Slightwv,
Sorry for late response, i didnt see ur post ...
What are you returning from the procedure?
The returnFlag
What are you wanting to do with it once it is returned?
Based on returnFlag status need to run the commands
In case of an exception, what do you want the script to do?
It should log the exception and exit .
Thanks
Slightwv,
Sorry for late response, i didnt see ur post ...
What are you returning from the procedure?
The returnFlag
What are you wanting to do with it once it is returned?
Based on returnFlag status need to run the commands
In case of an exception, what do you want the script to do?
It should log the exception and exit .
Thanks
>>The returnFlag
Need more information. Do you mean the error-code like ORA-00942, teh error message, what?
>>Based on returnFlag status need to run the commands
What commands? More PL/SQL code, more Unix commands, what?
>>It should log the exception and exit .
Log how? In a log file created by the script, in the database, what/where?
The more specific you can be when asking questions, the faster you can get it answered. We need to know the specifics...
Need more information. Do you mean the error-code like ORA-00942, teh error message, what?
>>Based on returnFlag status need to run the commands
What commands? More PL/SQL code, more Unix commands, what?
>>It should log the exception and exit .
Log how? In a log file created by the script, in the database, what/where?
The more specific you can be when asking questions, the faster you can get it answered. We need to know the specifics...
ASKER
Hi,
First apologies about the other question. I do understand that here i am getting help , i was try to make the question visible to some other experts so only posted this . Sorry again.
In the PLSQL , we have return_flag = y and return_flag = n , so how shell script will capture that y/n value.
Based on the y/n , i have to execute Unix commands.
The exception, say "unable to access table" should get logged in the Unix log which i am storing >> /var/log/app/log
Thanks
First apologies about the other question. I do understand that here i am getting help , i was try to make the question visible to some other experts so only posted this . Sorry again.
In the PLSQL , we have return_flag = y and return_flag = n , so how shell script will capture that y/n value.
Based on the y/n , i have to execute Unix commands.
The exception, say "unable to access table" should get logged in the Unix log which i am storing >> /var/log/app/log
Thanks
Did you try the sample provided my Mike in http:#a40575654 ?
The Unix shell variable Result should contain whatever the output parameter of the stored procedure is.
The Unix shell variable Result should contain whatever the output parameter of the stored procedure is.
ASKER
No, i didnt try it. I just installed oracle , i will test it and let you know the outcome.
ASKER
Sorry guys, i still not tested this . As i was unable to install the oracle rpm package in ubuntu since rpm wasnt installed in my machine and i dont have internet access expect i can connect a usb .
ASKER
Hi,
Sorry for the delay.
Its working fine,but the only issue is the output coming as below.
pl/sql procedure completed................. .......... .......... .......... 123
I want to store only the actual value. I managed to get the value using shell script.
But is there a way to handle the same in oracle ? so i get the output as 123
Thanks
Sorry for the delay.
Its working fine,but the only issue is the output coming as below.
pl/sql procedure completed.................
I want to store only the actual value. I managed to get the value using shell script.
But is there a way to handle the same in oracle ? so i get the output as 123
Thanks
Do this:
Result=`sqlplus -s userid/passwd <<EOSQL
var var1 number;
exec myProc( :var1 out number);
exit :var1
EOSQL`
return_flag=$?
ASKER
So instead of checking the variable var1 for Y or N, i can check the value for $return_flag=0or not 0 right?
Or 123
This is unix return code from 0 to 255 only
This is unix return code from 0 to 255 only
ASKER
Sorry for confusion , 123 is the value output from stored procedure.
its the value returned from table column which is the output parameter.
its the value returned from table column which is the output parameter.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Great Mike , thank you so much . Learned pretty much . Thanks again.
Exceptions are typically handled inside PL/SQL itself.
What are you returning from the procedure?
What are you wanting to do with it once it is returned?
In case of an exception, what do you want the script to do?