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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


3 رد (ردود) على هذا الموضوع

#1 hussien plaza

hussien plaza

    عضو

  • الأعضــاء
  • 3 مشاركة

تاريخ المشاركة 04 April 2010 - 05:50 PM

.......
السؤال :
اكتب 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


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


#2 mmsalman87

mmsalman87

    عضو مميز

  • الأعضــاء
  • 1,689 مشاركة
  • الاسم الأول:Maher
  • اسم العائلة:Salman
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle HCM SaaS Pre Sale Consultant

تاريخ المشاركة 04 April 2010 - 09:05 PM

هل هذا اسم تريغر ؟ غير صالح وفشل في اعادة التدقيق زناد 'SCOTT.AUDIT_EMP_VALUES'

                                                                                             

                                                                                                                  Maher Salman

• Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist 

Taleo (TEE): Onboarding Administration Ed 3 LVC, Oracle University.

• Taleo (TBE): Recruit Essentials Ed 4.1 LVC, Oracle University.

• Oracle Fusion HCM Implementation, Oracle University.

• Oracle Certified Professional Developer (OCP) - Oracle Forms: Build Internet Applications.

• Oracle Certified Associate Developer (OCA).

• Oracle E-Business Suite R12 Human Capital Management Certified Implementation Specialist (HCM)

                                                                                                                                        
                                                                                                           http://learnoracle.net                                                                                                                

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

أهم مواضيعي ( Oracle Developer )

- برنامج حفظ الكودات - My Codes

- كيفية عمل نظام متعدد اللغات

- انشاء شاشة دخول وتغيير كلمة السر والتحكم بالمستخدمين

- Import And Export On Toad

- التحكم في النظام من خلال الملف Formsweb.cfg

​- Advanced Dynamic List

- توليد ارقام وحروف عشوائية 

 

 

أهم مواضيعي ( Oracle HRMS)

 

Using Special Value set in oracle hrms 


#3 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 05 April 2010 - 09:34 PM

السلام عليكم
الاخ العزيز
لايوجد أخطاء بهذا البلوك ولكن تأكد أنك لاتزيد بنسبة ال 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





وفقك الله

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#4 hussien plaza

hussien plaza

    عضو

  • الأعضــاء
  • 3 مشاركة

تاريخ المشاركة 06 April 2010 - 12:27 AM

مشكوور على الحل يا صديقي
الله يعطيك الف عافيه