Just catch the error in your sql and print the errormessage. This will come
on standard output and
this can catched into an file or variable
sqlplus .... > > filename
if [[ $? -ne 0 ]] then
echo "SQLPLUS failed " $?
cat filename
Regards,
Jeroen
-- --Oorspronkelijk bericht-- --
Van: Ranjeesh K R. [mailto:ranjeeshk@(protected)]
Verzonden: Wednesday, July 21, 2004 4:35 PM
Aan: undisclosed-recipients; LOCAL
Onderwerp: WHENEVER SQLERROR EXIT SQL.SQLCODE||SQLERRM & Relate ORA-ERRNO &
SQLCODE
Hi,
Qn 1
-- -----
Is there any way to pass both the SQL.SQLCODE & SQLERRM to the os back ??
Qn 2
-- ----
When I tried WHENEVER SQLERROR EXIT SQL.SQLCODE
The actual oracle error code (ORA-00942 (See ORA-00942.ora-code.com)) and the error code (174 ) returned
by SQL.SQLCODE are different . So how can I get the info. that is related to
SQL.SQLCODE
eg :
For this test program
-- ---- ---- ---- ------
rm -f /home/etladm/test/test.log
sqlplus -S < <EOF > > /home/etladm/test/test.log
ranjeeshk/ics
set verify on time on timing on term on echo on feedback on serveroutput on
WHENEVER SQLERROR EXIT SQL.SQLCODE
-- WHENEVER SQLERROR EXIT SQLERRM
select sysdate sdate from dua;
exit 1
EOF
echo "Number of rows are: $? " > > /home/etladm/test/test.log echo " -- -----
Log file -- ----- \n " cat /home/etladm/test/test.log
The output was
-- ---- ---- ---- -----
etladm@(protected):/home/etladm/test >. ./test.ksh
-- ----- Log file -- -----