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

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


hussien plaza

Recommended Posts

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

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

السلام عليكم ورحمة الله وبركاته
------------------------------------

BEGIN FOR REC IN ( SELECT * FROM EMP )
LOOP
UPDATE EMP
SET SAL=SAL + ( SELECT DECODE ( REC.DEPT_NO , 10 ,REC.SAL * 10/100,20,REC.SAL * 20/100 , REC.SAL*5/100) FROM DUAL ) 
WHERE EMP_NO=REC.EMP_NO;
END LOOP;
COMMIT;
END;

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

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

تم تعديل بواسطة mostfa_future
رابط هذا التعليق
شارك

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

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

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

×   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.

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

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

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