بتاريخ: 4 أبريل 201016 سنة comment_188951 .......السؤال :اكتب 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ارجو مساعدتي لاني لا اعرف لانه يوجد اخطاء ...... تقديم بلاغ
بتاريخ: 4 أبريل 201016 سنة comment_188964 هل هذا اسم تريغر ؟ غير صالح وفشل في اعادة التدقيق زناد 'SCOTT.AUDIT_EMP_VALUES' تقديم بلاغ
بتاريخ: 5 أبريل 201016 سنة comment_189083 السلام عليكم الاخ العزيز لايوجد أخطاء بهذا البلوك ولكن تأكد أنك لاتزيد بنسبة ال 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 وفقك الله تقديم بلاغ
بتاريخ: 5 أبريل 201016 سنة كاتب الموضوع comment_189094 مشكوور على الحل يا صديقي الله يعطيك الف عافيه تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.