alcagam بتاريخ: 19 يوليو 2007 تقديم بلاغ مشاركة بتاريخ: 19 يوليو 2007 أريد عمل زناد يشترط الا يكون راتب الموظف أكبر من راتب الرئيس وقد حاولت التالي لكن ما ظبطت ,, معليش أخوكم لسة في بداية الطريق أرجوا المساعة وجزا الله خيراً كل من يقوم على أمر هذا المنتدى الذي أقل ما يقال عنه أنه رائع ...SQL> create or replace procedure get_president_sal 2 (v_job in emp2.job%type) 3 is 4 v_sal emp2.sal%type; 5 begin 6 select sal into v_sal 7 from emp2 8 where job = 'PRESIDENT'; 9 END get_president_sal; 10 /Procedure created.SQL> EXECUTE get_president_sal('PRESIDENT')PL/SQL procedure successfully completed.SQL> CREATE OR REPLACE TRIGGER not_ov_president_sal 2 before update or insert of sal,job on emp2 3 FOR EACH ROW 4 WHEN (new.job <> 'PRESIDENT') 5 DECLARE 6 v_pres_sal emp2.sal%type; 7 BEGIN 8 v_pres_sal:=get_president_sal('PRESIDENT'); 9 IF (:new.sal) > v_pres_sal then 10 RAISE_APPLICATION_ERROR(-20505,'presiden salry zone'); 11 END IF; 12 END; 13 /Warning: Trigger created with compilation errors.SQL> SHOW ERRORErrors for TRIGGER NOT_OV_PRESIDENT_SAL:LINE/COL ERROR-------- -----------------------------------------------------------------4/1 PL/SQL: Statement ignored4/13 PLS-00222: no function with name 'GET_PRESIDENT_SAL' exists in this scopeeft] اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sky information بتاريخ: 19 يوليو 2007 تقديم بلاغ مشاركة بتاريخ: 19 يوليو 2007 الأخ\ alcagam انا فهت من سؤالك انك تريد منع الموظفين من الحصول على راتب أعلى من راتب الرئيس 1- نعمل FUNCTION : CREATE OR REPLACE FUNCTION GET_SALARY RETURN NUMBER IS V_SAL NUMBER:=0; BEGIN SELECT SAL INTO V_SAL FROM EMP WHERE JOB='PRESIDENT'; RETURN(V_SAL); END; 2- نعمل TRIGGER : CREATE OR REPLACE TRIGGER CHECK_SALARY BEFORE INSERT OR UPDATE ON EMP FOR EACH ROW BEGIN IF :NEW.SAL>GET_SALARY THEN RAISE_APPLICATION_ERROR(-20502,'YOU CANNOT ASSIGN SALARY MORE THAN'||GET_SALARY ); END IF; END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
alcagam بتاريخ: 20 يوليو 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 20 يوليو 2007 الأخ الفاضل \ sky informationأولاً لك كل الشكر على الاهتمام بالفعل الدالة والزناد مشى حالهم لكن عند التنفيذ بيصطدموا ب mutating ساحاول حلها باذن الله ,,, مرة اخرى لك الشكر عزيزي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.