08-09-2001
a li'l more help maybe.....
hi,
as for catching errors in sql this might help.
u can have an exception block in the sqplus block and catch the return code once u come out of the block.
so if u have an error u can abort the script so that the next in line functions r not executed.
....script
.....
....
spout=`sqlplus -s $UP <<EOJ
SET HEAD OFF
SET AUTOPRINT OFF
WHENEVER SQLERROR EXIT;
(this way if u have an sql error u get an exit condition)
(either have this or catch it in the excepton block)
ALTER TRIGGER XX ENABLE;
CREATE ........ON ........(......)
TABLESPACE .......... PCTFREE 10
STORAGE(INITIAL 104K NEXT 104K PCTINCREASE 0 );
DECLARE
v_alter_statement VARCHAR2(255);
CURSOR c_constraint_name IS
SELECT constraint_name
FROM dba_constraints
WHERE table_name = 'YYYY';
BEGIN
FOR REC IN c_constraint_name
LOOP
v_alter_statement := 'ALTER TABLE YYYY';
v_alter_statement := v_alter_statement || ' ENABLE CONSTRAINT ';
v_alter_statement := v_alter_statement || REC.constraint_name;
DBMS_UTILITY.EXEC_DDL_STATEMENT(v_alter_statement);
END LOOP;
Exception
when OTHERS then
Rollback;
dbms_output.put_line ('Script failed : Sqlcode: ' || SQLCODE || ' Error message :' ||
SQLERRM);
return;
END;
/
EOJ`
....pl sql ends here!!
you have to define FATAL and sucess in ur env file afaik!
ret_code=$?
echo "$spout" >> ${logfile}
if [ $ret_code -ne $SUCCESS ]
then
cat ${logfile}
echo
echo
echo Script Failed.
echo "Script Ended : " `date`
echo
exit $FATAL
fi
if test $ret_code -ne 0
then
cat ${logfile}
echo
echo
echo Script Failed.
echo "Script Ended : " `date`
echo
exit ${OXYGEN_FATAL}
fi
# no errors.
cat ${logfile}
echo
echo
echo Script completed sucessfully
echo "Script Ended : " `date`
echo
exit $SUCCESS
well this is just an example script!
hope this helps.
Regards
Manish
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
2. Shell Programming and Scripting
I'm writting a shell script and at the begining I login to sqlplus by
sqlplus -l user_name/password@instance
what I would like is to check if the database is down or not , and if the database has started moved to the next step else sleep for a certain time and then check again .
I know how to... (4 Replies)
Discussion started by: aya_r
4 Replies
3. Shell Programming and Scripting
How to execute a query which is stored in a variable.
Say for example :
v_source_query=”select count(*) from emp”
v_source_value=`sqlplus -S "$DATABASE_LOGIN" << EOF | tr '\n' ' '
set feed off
set pagesize 0
set head... (12 Replies)
Discussion started by: trupti_d
12 Replies
4. UNIX for Dummies Questions & Answers
i'm having real problems retrieving the returncode of my sqlplus-call. I found a lot of informations on the net, but havn't been able to get it running so far, so now i ask for some help ;)
I do start the sqlplus out of my shell script with the parameters stored in the proc_clips.sql, which is... (6 Replies)
Discussion started by: maco_home
6 Replies
5. Programming
Hi,
I am trying to execute the update statment in shell sqlplus.But nothing prompts.if i do ctrl+c i got the below error.
SQL> update table set enabled='N' where type_code='xx';
^C update table set enabled='N' where type_code='xx'
*
ERROR at line 1:
ORA-01013: user requested... (2 Replies)
Discussion started by: nmahendran
2 Replies
6. Shell Programming and Scripting
Hi
I want to connect to the Oracle database using a username/password and get back the query result(a numeric value) in a variable, which I can then compare using a conditional.
Can anybody help me with this.
Thanks
Gaurav (4 Replies)
Discussion started by: gaurav_1711
4 Replies
7. Shell Programming and Scripting
I have shell script which will try to login to SQL Plus and retrieve some data, based on the outcome i will proceed further
Below is the content of the file
pebblz02% cat test1.ksh
#! /bin/ksh
dummyvar=`sqlplus -S csm_admin/csm_admin@SIDNAME <<EOF echo hi; exit; EOF`
Error message on... (0 Replies)
Discussion started by: kiranlalka
0 Replies
8. Shell Programming and Scripting
Hi
When I use sqlplus in shell script, I get sqlplus: command not found.
ORACLE_HOME is not set. How to set ORACLE_HOME in unix?
Thanks (3 Replies)
Discussion started by: vinoth_kumar
3 Replies
9. Shell Programming and Scripting
Hi all,
on AIX 6.1 I want to run the following but for 5 DB. How should I do that ? Using FOR, WHILE ???? How ?
export ORACLE_SID=DB1
sqlplus / as sysdba << EOF
whenever sqlerror exit sql.sqlcode;
whenever oserror exit FAILURE
set define off
set head off
set feedback off
set echo off... (1 Reply)
Discussion started by: big123456
1 Replies
10. Shell Programming and Scripting
friends because when calling a sqlplus from a shell it brings me the following message
sqlplus -s $BDDUSER/$BDDPASS@$BDDHOST @$DIR_SQL/prueba.sql
echo "bandera 3 " $?
STATUS=$?
if ;then
echo "bandera 4 " $?
#log_info "La ejecucion de... (1 Reply)
Discussion started by: tricampeon81
1 Replies
LEARN ABOUT OPENSOLARIS
echo
echo(1B) SunOS/BSD Compatibility Package Commands echo(1B)
NAME
echo - echo arguments to standard output
SYNOPSIS
/usr/ucb/echo [-n] [argument]
DESCRIPTION
echo writes its arguments, separated by BLANKs and terminated by a NEWLINE, to the standard output.
echo is useful for producing diagnostics in command files and for sending known data into a pipe, and for displaying the contents of envi-
ronment variables.
For example, you can use echo to determine how many subdirectories below the root directory (/) is your current directory, as follows:
o echo your current-working-directory's full pathname
o pipe the output through tr to translate the path's embedded slash-characters into space-characters
o pipe that output through wc -w for a count of the names in your path.
example% /usr/bin/echo "echo $PWD | tr '/' ' ' | wc -w"
See tr(1) and wc(1) for their functionality.
The shells csh(1), ksh(1), and sh(1), each have an echo built-in command, which, by default, will have precedence, and will be invoked if
the user calls echo without a full pathname. /usr/ucb/echo and csh's echo() have an -n option, but do not understand back-slashed escape
characters. sh's echo(), ksh's echo(), and /usr/bin/echo, on the other hand, understand the black-slashed escape characters, and ksh's
echo() also understands a as the audible bell character; however, these commands do not have an -n option.
OPTIONS
-n Do not add the NEWLINE to the output.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWscpu |
+-----------------------------+-----------------------------+
SEE ALSO
csh(1), echo(1), ksh(1), sh(1), tr(1), wc(1), attributes(5)
NOTES
The -n option is a transition aid for BSD applications, and may not be supported in future releases.
SunOS 5.11 3 Aug 1994 echo(1B)