الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

اسكربت لعمل تريجر لتخزين الأخطاء علي مستوي قاعدة البيانات

Featured Replies

بتاريخ:

السلام عليكم و رحمة الله و بركاته

إخواني الكرام

هذه المرة اشارككم اسكربت لعمل تريجر علي مستوي الداتابيز
و يقوم هذا التريجر بتخزين الأخطاء التي تحدث في قاعدة البيانات في جدول يمكن استعراض بياناته
و يمكنك بعد ذلك بجمل استعلام التعرف الي الأخطاء المتكررة الحدوث


إليكم الكود

spool err 

set echo on 

drop trigger catch_err_trigger; 
drop table sys.save_err_audit; 


create table sys.save_err_audit 
(errstack varchar2(2000), 
tim date, 
sid number(4), 
username varchar2(2000), 
osuser varchar2(100), 
machine varchar2(100), 
process varchar2(100), 
program varchar2(100)) 
tablespace TOOLS; 

create or replace trigger 
catch_err_trigger 
after servererror on database 
DECLARE 
v_dat date; 
v_for varchar2(2000); 

BEGIN 

v_for :=dbms_utility.format_error_stack; 
select sysdate into v_dat from dual; 

insert into sys.save_err_audit (errstack,tim,sid,username,osuser,machine,process,program) 
select v_for,v_dat,sid,username,osuser,machine,process,program 
from sys.v$session 
where sid = (select distinct sid from v$mystat); 


EXCEPTION 

WHEN no_data_found THEN 
raise_application_error(-2002,'no data found'); 
WHEN program_error THEN 
raise_application_error(-2003,'internal PL/SQL error'); 
WHEN storage_error THEN 
raise_application_error(-2004,'PL/SQL memory error'); 
WHEN others THEN 
raise_application_error(-2005,'undefined error'); 


end; 
/ 

show errors 
exit 
-------------------- 

--SECOND PART 


-- sql to show data store in sys.save_err_audit 
-- 
-- 


set echo off feedb on pages 200 lin 800 
COLUMN errstack FORMAT A80 
COLUMN time FORMAT A18 
COLUMN sid FORMAT A10 
COLUMN username FORMAT A15 
COLUMN osuser FORMAT A20 
COLUMN machine FORMAT A25 
COLUMN process FORMAT A9 
COLUMN program FORMAT A20 


spool show_err 

set colsep | underline _ 


select to_char(tim,'dd-mon-yy hh:mi AM')time, 
username, 
osuser, 
machine, 
process, 
program, 
errstack 
from sys.save_err_audit 
order by time; 


exit 
/ 



و الملف بالمرفقات

trigger_to_store_errors.txt

بتاريخ:

شكرا جزيلا لك

ممكن تجرب معي الكود المرفق وتقول لي لماذا لا يعمل
في 9i يعمل بشكل جيد بس في 10g لا يعمل



شكرا جزيلا لك

ممكن تجرب معي الكود المرفق وتقول لي لماذا لا يعمل
في 9i يعمل بشكل جيد بس في 10g لا يعمل


02393= -- exceeded call limit on CPU usage

test.txt

بتاريخ:

شكرا اخي hanon_ocp موضوع جميل

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.