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

بتاريخ:

عندي جددولين orders and stock

Orders

Orderid

itemid

Orderdate

Qty

Unitprice

Totalprice

 

Stock

itemid

qty

يتم عمل trigger يقوم بحساب totalprice قبل تسجيلهم في جدول orders

يتم عمل trigger يقوم بخصم الصنف الذى تم شرائه بحسب الكمية التي تم شرائه

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

 

 

-----------------------------------------------------
ده اللي أنا عملته بس هل ده صح ولا غلط
create table orders

(order_id number,item_id number,order_date date,quantity number,unit_price number,total_price number)

create table stock

(    item_id number, stock number)

---------------------------

 

create or replace trigger orders_trg 
before insert on orders
for each row
begin
;total_price:= :new.unit_price * :new.quantity
;end
 first trigger to calculate the total price--

----------------------------------------------------

create or replace trigger stock_trg 
after insert on orders
for each row
begin
update stock
set :new.stock :=:old.stock - :new.orders.quantity 
;where item_id = orders.item_id
;end
 

 second trigger to subtract the items that orderd from stock--

----------------------------------------------------------------------------------
create or replace trigger orders_stock_trg 
before delete on orders
for each row
begin
if(sysdate - order_date >14)
then
;new.stock =:old.quantity:
;end if
;end
-- Third trigger to sure that stock have same quantity before deleting from orders.
 
 

 

بتاريخ:

هذا هو الكود الصحيح للتريقر الاول 

 

 

--create table orders (order_id number,item_id number,order_date --date,quantity number,unit_price number,total_price number);
 
--create table stock (item_id number, stock number);
 
 
 
create or replace trigger orders_trg 
before insert on orders
for each row
declare
total_price number;
begin
total_price := (:new.unit_price * :new.quantity);
dbms_output.put_line(total_price);
end;
/
 
show error

 

 

أحاول الان في حل الاكواد الباقية باذن الله بعد الظهر 

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

هذا هو الكود الصحيح للتريقر الاول 

 

 

--create table orders (order_id number,item_id number,order_date --date,quantity number,unit_price number,total_price number);
 
--create table stock (item_id number, stock number);
 
 
 
create or replace trigger orders_trg 
before insert on orders
for each row
declare
total_price number;
begin
total_price := (:new.unit_price * :new.quantity);
dbms_output.put_line(total_price);
end;
/
 
show error

 

 

أحاول الان في حل الاكواد الباقية باذن الله بعد الظهر 

هوة كده شغال الحمدلله

هنتظر باقي الاكواد ان شاء الله وجزاك الله خيرا

تم تعديل بواسطة منمون علي

بتاريخ:

أخي الكريم جدول الـ stock

 

ناقص عمود :unit_price

 

اضف العمود وفي التريقر الثالث طبق امر الاضافة insert  بهذا الشكل 

 

 

create or replace trigger orders_stock_trg 
before delete on orders
for each row
begin
if(sysdate - order_date) <14
then
insert into stock (unit_price) values (:old.unit_price)
 
end if;
end;
/
show error

 

 

ــــــــــــــــ

بالنسبة للتريقر الثاني مافهمت ايش المطلوب بالظبط 

 

ان شاء الله أكون أفدتك وساعدتك 

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

أخي الكريم جدول الـ stock

 

ناقص عمود :unit_price

 

اضف العمود وفي التريقر الثالث طبق امر الاضافة insert  بهذا الشكل 

 

 

create or replace trigger orders_stock_trg 
before delete on orders
for each row
begin
if(sysdate - order_date) <14
then
insert into stock (unit_price) values (:old.unit_price)
 
end if;
end;
/
show error

 

 

ــــــــــــــــ

بالنسبة للتريقر الثاني مافهمت ايش المطلوب بالظبط 

 

ان شاء الله أكون أفدتك وساعدتك 

بالنسبة للمطلوب التاني 

هوة عاوز بعد ما ادخل الاوردر

أروح اخصم الكمية اللي دخلت في الاوردر

من stock

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

أخي الكريم جدول الـ stock

 

ناقص عمود :unit_price

 

اضف العمود وفي التريقر الثالث طبق امر الاضافة insert  بهذا الشكل 

 

 

create or replace trigger orders_stock_trg 
before delete on orders
for each row
begin
if(sysdate - order_date) <14
then
insert into stock (unit_price) values (:old.unit_price)
 
end if;
end;
/
show error

 

 

ــــــــــــــــ

بالنسبة للتريقر الثاني مافهمت ايش المطلوب بالظبط 

 

ان شاء الله أكون أفدتك وساعدتك 

بالنسبة للتريجر التالت

بيديني error 

هوة المفروض update

مش insert

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

فأنا عدلتها كده بس عندي error مش عارفة اصلحه ياريت لو تساعدني في حل الerror

----------------------------------------------

create or replace trigger orders_stock_trg 
before delete on orders
for each row
declare
order_date date;
unit_price number;
unitprice number;
begin
if ((sysdate - order_date) < 14 )
then
       update stock
       set unitprice  := :old.unit_price
       where item_id =orders.item_id;
end if;
end;
/
show error
 
--------------
error:

 

 

LINE/COL ERROR 8/8 PL/SQL: SQL Statement ignored 9/23 PL/SQL: ORA-00927: missing equal sign

 

 

تم تعديل بواسطة منمون علي

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

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

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

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

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

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.