obc88 بتاريخ: 3 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 3 أغسطس 2008 لدي جدول به السعر والخصم والاجمالي هل يمكن عن طريق امر انشاء الجدول ادراج العملية الحسابية بها دون الحاجة لانشاء VIEW وشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 3 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 3 أغسطس 2008 (معدل) السلام عليكم ورحمة الله وبركاته طبعا ممكن أن تنشئ جدول من جدول أخر عن طريق جملة Select Create table test as select so you can here to do what you want and no need to make view تم تعديل 3 أغسطس 2008 بواسطة islamic_boy600 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MMA بتاريخ: 3 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 3 أغسطس 2008 لدي جدول به السعر والخصم والاجمالي هل يمكن عن طريق امر انشاء الجدول ادراج العملية الحسابية بها دون الحاجة لانشاء VIEW الأخ الكريم السعر والخصم حقول مخزنة ... أما الإجمالي حقل محسوب وليس مخزن ... يعني مينفعش نعمل حقل مخزن للإجماليات ( حسب تحليل النظم ) ... فلماذا ترغب في ذلك هل هناك سبب معين لذلك ؟؟؟علي العموم سأعتبر أن هناك سبب خاص ... نفرض أن لديك جدول خاص بالمبيعات يدعي INVOICE . يحتوي علي 3 حقول الأول INVOICE_PRICE والثاني INVOICE_DISCOUNT والثالث INVOICE_SUM . يمكنك إنشاء TRIGGER مناسب علي مستوي الجدول INVOICE بحيث أن ينفذ هذه العملية بصفة مستمرة أثناء إجراء إدراج أو تحديث بالجدول كما يلي :CREATE OR REPLACE TRIGGER TRG_BEFORE_INVOICE BEFORE INSERT OR UPDATE OR DELETE ON INVOICE FOR EACH ROW DECLARE FUNCTION GET_INVOICE_SUM RETURN NUMBER AS ID_SUM NUMBER(20,3); BEGIN SELECT INVOICE_PRECE + (INVOICE_PRECE * INVOICE_DISCOUNT) INTO ID_SUM FROM INVOICE WHERE INVOICE_ID = :NEW.INVOICE_ID; RETURN S; END; BEGIN IF(INSERTING OR UPDATING)THEN :NEW.INVOICE_SUM := GET_INVOICE_SUM; END IF; END; / وبكدة هيكون الحقل محدث تحديث تلقائي بصفة مستمرة وبدون أي مشاكل ... وإليك مثال أدق وابسط :نفرض أن لدينا جدول يدعي EMP ... يحتوي علي علي حقلين ... الأول EMP_NAME والثاني EMP_NAME_COPY بحيث أن يتم إدراج آخر تحديث لحقل إسم الموظف ، أنظر كيف يتم ذلك : CREATE OR REPLACE TRIGGER TRG_BEFORE_EMP BEFORE INSERT OR UPDATE OR DELETE ON EMP FOR EACH ROW BEGIN IF(INSERTING OR UPDATING)THEN :NEW.EMP_NAME_COPY := :OLD.EMP_NAME; END IF; END; / .....................وهكذابالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
obc88 بتاريخ: 3 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 3 أغسطس 2008 مشكورين على الإفادة البليغة ..بصراحة أسرع رد ...بارك الله فيكم. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.