hussien plaza بتاريخ: 3 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 3 أبريل 2010 ارجو مساعدتي في حل السؤال .السؤال :اكتب cursor اسمه update_sal يعمل على زيادة موظفي الدائرة (القسم) 10 بنسبة 10%وموظفي الدائرة (القسم) 20 بنسبة 20%وموظفي باقي الدوائر بنسبة 5% .ارجو المساعدة...ولكم جزيل الشكر ...مشكوورين........ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdou1984 بتاريخ: 3 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 3 أبريل 2010 السلام عليكم ورحمة الله وبركاته ------------------------------------ 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; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 3 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 3 أبريل 2010 (معدل) 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; تم تعديل 3 أبريل 2010 بواسطة mostfa_future اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.