   |  | | after servererror trigger | after servererror trigger 2006-07-28 - By goran bogdanovic
write a script to scan the ora trace/log files for errors? - and get rid of trigger...:-)
On 7/28/06, Wojciech Skrzynecki <wojciech.skrzynecki@(protected)> wrote: > > Hello > > > > I would like to ask you about after servererror trigger. I wrote trigger > as below: > > > > CREATE OR REPLACE TRIGGER notification_error > > after servererror on database > > declare > > d_sender varchar2(30) := ora_database_name; > > d_user varchar2(30) :=ora_login_user; > > d_rcp varchar2(100) := ' test'; > > d_mailhost VARCHAR2(30) := 'test'; > > d_mail_conn utl_smtp.connection; > > d_terminal VARCHAR2(30) :=userenv('terminal'); > > d_current_nr_error number := ora_server_error(1); > > ora_server_error_msg varchar2(100); > > BEGIN > > if d_current_nr_error between 01800 and 02231 > > or d_current_nr_error in (09291,16014) > > then > > ora_server_error_msg := SQLERRM(-d_current_nr_error); > > d_mail_conn := utl_smtp.open_connection(d_mailhost); > > utl_smtp.helo(d_mail_conn, d_mailhost ); > > utl_smtp.mail(d_mail_conn, d_sender); > > utl_smtp.rcpt(d_mail_conn, d_rcp); > > utl_smtp.open_data(d_mail_conn); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'From: ' || > ora_database_name); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Subject: ' || > ora_server_error_msg); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'User: ' || > ora_login_user); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Terminal: ' || > d_terminal); > > utl_smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Date: ' || > to_char(sysdate, 'RRRR-MM-RR HH24:MI:SS') ); > > utl_smtp.close_data(d_mail_conn); > > utl_smtp.quit(d_mail_conn); > > end if; > > > > I do not know how to intercept background ORA error example "ORA-01652 (See ORA-01652.ora-code.com): > unable to extend temp segment by 512 in tablespace TEMP" or > > "ORA-9291 (See ORA-9291.ora-code.com) invalid device specified for archive destination " > > > > Could you explain me how to do this? > > > > Thanks for help > -- > Wojciech Skrzynecki > Database Administrator >
write a script to scan the ora trace/log files for errors? - and get rid of trigger...:-)<br><br><div><span class="gmail_quote">On 7/28/06, <b class="gmail _sendername">Wojciech Skrzynecki</b> <<a href="mailto:wojciech.skrzynecki @(protected)"> wojciech.skrzynecki@(protected)</a>> wrote:</span><blockquote class="gmail _quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0 .8ex; padding-left: 1ex;"><div>
<p><span style="font-family: Arial;">Hello</span></p>
<p><span style="font-family: Arial;"> </span></p>
<p><span style="font-family: Arial;">I would like to ask you about after servererror trigger. I wrote trigger as below:</span></p>
<p><span style="font-family: Arial;"> </span></p>
<p><span style="font-family: Arial;">CREATE OR REPLACE TRIGGER notification_error</span></p>
<p><span style="font-family: Arial;">after servererror on database</span></p>
<p><span style="font-family: Arial;">declare</span></p>
<p><span style="font-family: Arial;"><span> </span>d_sender<span> </span><span> </span>varchar2(30) := ora_database _name;</span></p>
<p><span style="font-family: Arial;"><span> </span>d_user varchar2 (30) :=ora_login_user;</span></p>
<p><span style="font-family: Arial;"><span> </span>d_rcp <span> </span><span> </span>varchar2(100) := ' test';</span></p>
<p><span style="font-family: Arial;"><span> </span>d_mailhost <span > </span><span> </span>VARCHAR2(30) := 'test';</span></p>
<p><span style="font-family: Arial;"><span> </span>d_mail_conn <span> </span><span> </span>utl_smtp.connection;</span></p>
<p><span style="font-family: Arial;"><span> </span>d_terminal VARCHAR2(30) :=userenv('terminal');</span></p>
<p><span style="font-family: Arial;"><span> </span>d_current_nr _error <span> </span><span> </span>number := ora_server_error(1);</span></p>
<p><span style="font-family: Arial;"><span> </span>ora_server_error _msg<span> </span>varchar2(100);</span></p>
<p><span style="font-family: Arial;">BEGIN<span> </span></span></p>
<p><span style="font-family: Arial;"><span> </span>if <span> </span >d_current_nr_error<span> </span>between 01800 and 02231</span></p>
<p><span style="font-family: Arial;"><span> </span>or d_current_nr _error<span> </span>in (09291,16014)</span></p>
<p><span style="font-family: Arial;"><span> </span>then</span></p>
<p><span style="font-family: Arial;"><span> </span>ora _server_error_msg := SQLERRM(-d_current_nr_error);</span></p>
<p><span style="font-family: Arial;"><span> </span>d _mail_conn := utl_smtp.open_connection(d_mailhost);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.helo(d_mail_conn, d_mailhost );</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.mail(d_mail_conn, d_sender);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.rcpt(d_mail_conn, d_rcp);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.open_data(d_mail_conn);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'From:<span> </span>' || ora_database_name);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Subject: ' || ora_server_error_msg);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'User: ' || ora_login_user);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Terminal: ' || d_terminal);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.write_data(d_mail_conn, utl_tcp.CRLF || 'Date: ' || to_char(sysdate, 'RRRR-MM-RR HH24:MI:SS') );</span> </p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.close_data(d_mail_conn);</span></p>
<p><span style="font-family: Arial;"><span> </span>utl _smtp.quit(d_mail_conn);</span></p>
<p><span style="font-family: Arial;"><span> </span>end if;</span></p>
<p><span style="font-family: Arial;"> </span></p>
<p><span style="font-family: Arial;">I do not know how to intercept background ORA error example "ORA-01652 (See ORA-01652.ora-code.com): unable to extend temp segment by 512 in tablespace TEMP" or </span></p>
<pre><span style="font-size: 12pt; font-family: Arial;">"ORA-9291 (See ORA-9291.ora-code.com) invalid device specified for archive destination "</span></pre><pre><span style= "font-size: 12pt; font-family: Arial;"> </span></pre>
<p><span style="font-family: Arial;">Could you explain me how to do this?</span></p>
<p><span style="font-family: Arial;"> </span></p>
<p><span style="font-family: Arial;">Thanks for help</span></p>
-- <br></div><div><span class="sg">Wojciech Skrzynecki<br>Database Administrator
</span></div></blockquote></div><br>
|
|
 |