الانتقال إلى المحتوى

اكتب cursor يعمل على زيادة الراتب بنسبة محددة


hussien plaza

Recommended Posts

.......
السؤال :
اكتب cursor اسمه update_sal يعمل على زيادة
موظفي الدائرة (القسم) 10 بنسبة 10%
وموظفي الدائرة (القسم) 20 بنسبة 20%
وموظفي باقي الدوائر بنسبة 5% .
والكود ده يوج فيه أخطاء ارج المساعدة.

DECLARE
CURSOR update_sal iS
SELECT SAL ,DEPTNO , EMPNO from emp ;
v_sal number(10,3) ;
x_DEPTNO number(10);
x_EMPNO number(10);
BEGIN OPEN update_sal ;
LOOP
FETCH update_sal INTO v_sal,x_DEPTNO,x_EMPNO ;
if x_DEPTNO =10 then
update emp set sal=v_sal*.10 where EMPNO =x_EMPNO ;
end if;
if x_DEPTNO =20 then
update emp set sal=v_sal*.20 where EMPNO =x_EMPNO ;
end if;
if x_DEPTNO >20 then
update emp set sal=v_sal*.5 where EMPNO =x_EMPNO ;
end if;
EXIT WHEN update_sal%NOTFOUND;
end loop ;
CLOSE update_sal;
end;


DECLARE
*

يقول لي الخطأ موجود في سطر 1
غير صالح وفشل في اعادة التدقيق زناد 'SCOTT.AUDIT_EMP_VALUES'
وعند line 15


ارجو مساعدتي لاني لا اعرف لانه يوجد اخطاء ......

رابط هذا التعليق
شارك

السلام عليكم
الاخ العزيز
لايوجد أخطاء بهذا البلوك ولكن تأكد أنك لاتزيد بنسبة ال 10% ولكنك بتجعل قيمة المرتب ب 10% فقط يبقى المعادلة تكون كدا

update emp set sal=sal+(v_sal*.10) where EMPNO =x_EMPNO


كدا هتزود الزيادة على الراتب طبعا اضبطها على كل المعادلات



سبب الخطأ هو أنه يوجد trigger بيمنع اكمال عملية ال update فقط لاغير واسم التريجر
AUDIT_EMP_VALUES

وكي تتأكد بنفسك يمكنك عمل disable لذا التريجر مؤقتا هكذا

ALTER TRIGGER AUDIT_EMP_VALUES  DISABLE


ثم جرب واذا اردت عمل له enable يكون هكذا

ALTER TRIGGER AUDIT_EMP_VALUES  ENABLE






وفقك الله

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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