كيفية التحقق مما إذا كان المشغل غير صالح؟
سؤال
أنا أعمل على قواعد بيانات تحتوي على جداول متحركة يتم إنشاؤها تلقائيًا بواسطة بعض الأدوات الغامضة.بالمناسبة، يتعين علينا تتبع تغييرات المعلومات في الجدول عبر بعض المشغلات.وبطبيعة الحال، يحدث أن بعض التغييرات في بنية الجدول تؤدي إلى تعطيل بعض المشغلات، عن طريق إزالة عمود أو تغيير نوعه، على سبيل المثال.
إذن السؤال هو:هل هناك طريقة للاستعلام عن بيانات تعريف Oracle للتحقق مما إذا كانت بعض المشغلات معطلة، وذلك لإرسال تقرير إلى فريق الدعم؟
يقدم user_triggers جميع المشغلات ويخبرك إذا كانت ممكّنة أم لا، لكنه لا يشير إلى ما إذا كانت لا تزال صالحة.
المحلول
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_NAME = trigger_name
AND OBJECT_TYPE = 'TRIGGER'
AND STATUS <> 'VALID'
نصائح أخرى
قم بإلقاء نظرة على SYS.OBJ$، وتحديدًا عمود الحالة.
لا تنتمي إلى StackOverflow