الانتقال إلى المحتوى
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

بتاريخ:

عندى جدول بهذا الشكل

CREATE TABLE "BFI"."SALES_GOOD" 
  (	"GOODS_ID" NUMBER(5,0) NOT NULL ENABLE, 
"C_ID" NUMBER(14,0) NOT NULL ENABLE, 
"COST" NUMBER(5,0) NOT NULL ENABLE, 
"GIVEN" NUMBER(5,0) NOT NULL ENABLE, 
"PREMIUMS" NUMBER(4,0), 
"NO_PREM" NUMBER(3,0), 
"S_DATE" DATE NOT NULL ENABLE, 
"QTY" NUMBER(7,2), 
"SALES_NO" NUMBER(5,0), 
"REMAIN" NUMBER(10,3), 
 CONSTRAINT "P_K_SAL_GOODS" PRIMARY KEY ("C_ID", "SALES_NO")
 USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
 TABLESPACE "BFI"  ENABLE, 
 CONSTRAINT "F_K_SAL_GOODS_CID" FOREIGN KEY ("C_ID")
  REFERENCES "BFI"."CUSTMER" ("C_ID") ENABLE, 
 CONSTRAINT "F_K_SAL_GOODS_GOODS_ID" FOREIGN KEY ("GOODS_ID")
  REFERENCES "BFI"."GOODS" ("GOODS_ID") ENABLE
  ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
 TABLESPACE "BFI";


وجدول اخر

CREATE TABLE "BFI"."INSTALLMENT" 
  (	"C_ID" NUMBER(14,0) NOT NULL ENABLE, 
"GOODS_ID" NUMBER(5,0) NOT NULL ENABLE, 
"CURENT_DATE" DATE DEFAULT SYSDATE NOT NULL ENABLE, 
"BILL_DATE" DATE NOT NULL ENABLE, 
"ALL_REMAIN" NUMBER(10,3), 
"REMAIN" NUMBER(10,3), 
"PREMIUM_NO" NUMBER(10,3), 
"PRMIUM_COST" NUMBER(4,0), 
 CONSTRAINT "P_K_INSTALL" PRIMARY KEY ("C_ID", "PREMIUM_NO")
 USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
 TABLESPACE "BFI"  ENABLE, 
 CONSTRAINT "F_K_INSTALL_CID" FOREIGN KEY ("C_ID")
  REFERENCES "BFI"."CUSTMER" ("C_ID") ENABLE, 
 CONSTRAINT "F_K_INSTALL_GOODS_ID" FOREIGN KEY ("GOODS_ID")
  REFERENCES "BFI"."GOODS" ("GOODS_ID") ENABLE
  ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
 TABLESPACE "BFI";


اريد عمل تريجر بمجرد ادخال البيانات فى الجدول الاول يدخل هذه البيانات فى الجدول الثانى
بمثل هذا الشكل

create or replace
TRIGGER "t_installment "
AFTER INSERT OR UPDATE ON SALES_GOOD
FOR EACH ROW 
DECLARE
V DATE;
N NUMBER (14);
begin  
 SELECT ROUND(LAST_DAY(S_DATE),'MONTH') INTO V FROM SALES_GOOD WHERE
 C_ID =10000001;
 SELECT NVL(MAX(PREMIUM_NO),0)+1 INTO N FROM installment;
if inserting then 

insert into INSTALLMENT values(:new.C_id,:new.GOODS_ID,SYSDATE,V,NEW.REMAIN,NULL,N,NEW.PREMIUMS);
END IF;
END;


عند عمل هذا الترجر بيعملى ايرور
ممكن حد يساعدنى لحل هذه المشكله
وجزاكم الله خيرا

بتاريخ:

أخطاء بسيطة نسيان بعض الاشياء
لاحظ

create or replace
TRIGGER "t_installment "
AFTER INSERT OR UPDATE ON SALES_GOOD
FOR EACH ROW
begin DECLARE
V DATE;
N NUMBER (14);
begin SELECT ROUND(LAST_DAY(S_DATE),'MONTH') INTO V FROM SALES_GOOD WHERE C_ID =10000001;
 SELECT NVL(MAX(PREMIUM_NO),0)+1 INTO N FROM installment;
if inserting then
insert into INSTALLMENT values(:new.C_id,:new.GOODS_ID,SYSDATE,V,:NEW.REMAIN,NULL,N,:NEW.PREMIUMS);
END IF;
END;
end;

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا يا اخى على اهتمامك
شيئ اخر اريد معرفته
فى هذه العمليه انا اريد احتساب اول كمبياله وغالبا تكون بعد شهر فالكود ده لحساب اول شهر بعد الشراء
فمش هقوله يدخلى عميل عميل انا مش عارف اعملها انه بمجرد ما احفظ سلعه عميل يقوم بحساب تريخ اول كمبياله لهذا العميل وتسجيله فى الجدول الجديد
بدل ما اكتب



انا مش عارف اوضح اوى فارجو منك الصبر

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا على اهتمامك
مش عايز احدد ال C_ID برقم معين
الC_ID هوا رقم العميل
اريده ادخال التاريخ للعميل الذى تم تسجيله اي عميل تم تسجيله

بتاريخ:
  • كاتب الموضوع

فعلا هذا قصدى بالفعل
وقد جربتها كثيرا كدا بنفس الطريقه ولم تعمل الا بعد ما كتبتها انت
شكرا جدا على تعبك معايا
ولاكن لما بدخل بيانات عميل جديد واحفظها لا يتم حفظها بسبب

ORA-04091: table BFI.SALES_GOOD is mutating, trigger/function may not see it
ORA-06512: at "BFI.t_installment ", line 6
ORA-04088: error during execution of trigger 'BFI.t_installment '
بتاريخ:

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

بتاريخ:
  • كاتب الموضوع

هتلاقى الجداول فى المرفقات

TABLES.txt

بتاريخ:

أخي الكريم
جرب كده التريجر بهذا الشكل وتأكد من النتائج جيدا وقولي ربما يكون هناك خطأ

create or replace TRIGGER "t_installment" aFTER INSERT OR UPDATE ON SALES_GOOD
FOR EACH ROW 
declare
V DATE;
N INSTALLMENT.PREMIUM_NO%type;
begin SELECT NVL(MAX(PREMIUM_NO),0)+1 INTO N FROM installment;
if (inserting) then
insert into INSTALLMENT values(:new.C_id,:new.GOODS_ID,SYSDATE,ROUND(LAST_DAY(:new.S_DATE),'MONTH'),:NEW.REMAIN,NULL,n,:NEW.PREMIUMS);
END IF;
END;

بتاريخ:
  • كاتب الموضوع

الف شكر ليك يا اخى ربنا يبارك فى علمك

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

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

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

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

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

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.