Unix Oracle


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Unix Oracle
# 1  
Old 03-17-2006
Unix Oracle

Through a shell script ...

I am invoking sql plus..

Code is as follows...

echo " set feedback off verify off pagesize 0
select column from table " | sqlplus -s/@dbname | read var_col

Now if oracle throws an exception for above select statement ...then how can i catch it ? Please help..asap

Thanks...
# 2  
Old 03-17-2006
I would assume that the sqlplus utility would return with non-zero return code
which you could catch either through $? or by direct shell logic.
However, I would rather rely on something like Perl's DBI (or DBD::Oracle below)
for anything in Oracle/Unix interaction.
# 3  
Old 03-20-2006
UNIX Oracle

You could continue the script with an if statement. For example, if the exception is: except, then you could insert an "if" statement in the script for
handling it:

if [[ $except -ne or -eq for not equal or for equal or Whatever option ]]
then
list of operations to perform
or
else
fi

Mr-synapse
# 4  
Old 03-20-2006
There are many ways to accomplish this.
Code:
echo "WHENEVER SQLERROR EXIT 1
 set feedback off verify off pagesize 0
select column from table " | sqlplus -s/@dbname 
if [[ $? -ne 0 ]] ; then
    do something...
fi

Or you can do something like this:
Code:
{
echo "WHENEVER SQLERROR EXIT 1
set feedback off verify off pagesize 0
select column from table; " | sqlplus -s/@dbname
} | while IFS=$(echo '\012\001') read LINE ; do
    case ${LINE} in
       ORA-*|SP2-*) do some stuff based on Oracle error ;;
       *) echo ${LINE} ;;
    esac
done

# 5  
Old 03-24-2006
Quote:
Originally Posted by tmarikle
There are many ways to accomplish this.
Code:
echo "WHENEVER SQLERROR EXIT 1
 set feedback off verify off pagesize 0
select column from table " | sqlplus -s/@dbname 
if [[ $? -ne 0 ]] ; then
    do something...
fi

Or you can do something like this:
Code:
{
echo "WHENEVER SQLERROR EXIT 1
set feedback off verify off pagesize 0
select column from table; " | sqlplus -s/@dbname
} | while IFS=$(echo '\012\001') read LINE ; do
    case ${LINE} in
       ORA-*|SP2-*) do some stuff based on Oracle error ;;
       *) echo ${LINE} ;;
    esac
done


Hi ,

can u please interpret from while statement.
I am not getting IFS=$(echo '\012\001') read LINE ?

I tried it but its not giving the proper error msg...

Thanks...
# 6  
Old 03-24-2006
I want to read whole lines back from Oracle queries so I am setting the field separator to newlines only for the WHILE..read loop. Otherwise, the read would read each word rather than the whole line. I use echo '\012' (\012 = newline) because I don't like to break up lines like this IFS='
'. I add \001 because if I use \012 by itself, it doesn't seem to stick for me.
# 7  
Old 03-27-2006
Please help

Quote:
Originally Posted by tmarikle
I want to read whole lines back from Oracle queries so I am setting the field separator to newlines only for the WHILE..read loop. Otherwise, the read would read each word rather than the whole line. I use echo '\012' (\012 = newline) because I don't like to break up lines like this IFS='
'. I add \001 because if I use \012 by itself, it doesn't seem to stick for me.

My code is as follows

line_no=10
pro=TEST
{
echo "WHENEVER SQLERROR EXIT 1
set feedback off verify off pagesize 0
select x from tp_mquote where ct1=0; " | sqlplus -s/ /
} | while IFS=$(echo '\012\001') read LINE;
do
case ${LINE} in
ORA-*|SP2-*) echo "Hido some stuff based on Oracle error" ;;
*) echo ${LINE} ;;
esac
done
echo $?
if [ $? -ne 0 ]; then
global_proc $line_no $proc_name
else
echo Success
fi

------Now their is error in sql statement as the column in WHERE clause does not exist in that table...-------------

But before echoing that error it echoes
sql statement and then all FILE NAMES in my pwd
and after that the actual error..

1. How can i avoid those FILE name..
2. I want to write this error to file a.out.

Please help.
Thanks & Regards,
Dhananjay
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Oracle/UNIX

How do you combine the two language. (1 Reply)
Discussion started by: zbest1966
1 Replies

2. Shell Programming and Scripting

unix-oracle

Hallo Friends, My script looks like this: #!/bin/ksh set -x ######################################################################### # # Name: # statistics.ksh # # Details: # Performs a series of queries on the database to analyse application performance; # reports on backlog of... (2 Replies)
Discussion started by: kekanap
2 Replies

3. UNIX for Advanced & Expert Users

oracle to unix

how can i safely transfer a oracle database to a unix system thanks (1 Reply)
Discussion started by: djbilly
1 Replies

4. UNIX for Dummies Questions & Answers

unix for oracle

Hi unixers, :) Anyone have any links or online tutorials for Shell Scripting with respect to Oracle . Any example of script calling any Oracle procedure or function or passing parameters is highly appreciated. (6 Replies)
Discussion started by: ravi raj kumar
6 Replies

5. Shell Programming and Scripting

Unix + Oracle

Hello people, at the moment, I have a database server running HP-UX and Oracle. From time to time, I need to extract data from oracle, and then do some data management (Awk, sed) within unix. At the moment, what I do is to copy the output from my oracle query and then paste into a file on another... (1 Reply)
Discussion started by: Khoomfire
1 Replies

6. HP-UX

Restore of oracle 8i from hp unix 11.0 to HP unix 11i

Hi, We are planning to migrate oracle 8.1.7.2 (8i) currently installed on a host with HP unix 11.0 to a host with HP Unix 11i. The method we are adopting is backup and restore of all file systems. Could this be a problem, apart from linking libraries on the target system. Thanks for the... (1 Reply)
Discussion started by: amitb
1 Replies

7. UNIX for Dummies Questions & Answers

Oracle to MySQL through Unix

Hello All, I'm a complete Unix newbie, and I have been asked to provide a solution for the following opportunity: Currently there is an Oracle database residing on a Unix box that I need to connect to on a regular basis from another Unix box. Upon connecting I need to hit multiple tables and... (6 Replies)
Discussion started by: Z24_2000
6 Replies

8. UNIX for Advanced & Expert Users

Oracle and Unix

Hi I am having trouble with a script to export individual schemas to tape from an oracle database. Basicaly I need to export each shema through a pipe with compression and store each shema name in a file with the relevant tape marker. (3 Replies)
Discussion started by: truma1
3 Replies

9. Programming

Oracle 9i on Unix

i am upgrading my Oracle 8i database to 9i that runs on Unix platform. Does this require me to make any changes in Unix so as to run the upgrade successfully? Regards, Gerald. (2 Replies)
Discussion started by: gerald_agoi
2 Replies
Login or Register to Ask a Question