بتاريخ: 9 ديسمبر 200520 سنة comment_53753 السلام عليكم ورحمة الله وبركاته هذا ما فهمته من السؤال "ربط Function بـ Procedure"طبعاً فهمت السؤال هو نصف الاجابة وانا ابي توضيح لا اقل ولا اكثر مثلاً عندي هذا السؤال واليكون مثال :-مستعيناً بدالة ( Function )مثلا اسمها annal اكتب Procedure لطباعة الراتب السنوي لجميع الموظفين الذين يأخذون مرتب أعلى من 1000 ؟؟؟اعرب ما تحته خط خخخخ اقصد وضح ما تحته خط انا الي فهمته انه لازم نستخدم Cursor عشان نرجع الراتب السنوي لجميع الموظفين الذين يأخذون مرتب أعلى من 1000 ؟؟؟ياليت احد يوضحلي واكون شاكر له هذا المعروف " والله يوفقكم لما يحبة ويرضاه "إلى اللقاء تقديم بلاغ
بتاريخ: 28 ديسمبر 200520 سنة comment_55857 create or replace function annual(sal number) return number isannual_sal number;beginselect sal*12+nvl(comm,0) from emp ;end;create or replace procedure sal iscursor c is select sal from emp where sal>1000sal_variable number;beginopen c;loopfetch c into sal_variablex=annual(sal_variable);dbms_output.put_line(x);exit when c%notfound;end;[email protected]لمزيد من الاستفسار تقديم بلاغ
بتاريخ: 31 ديسمبر 200520 سنة comment_56130 السلام عليكم, الحل كالاتي :-CREATE OR REPLACE FUNCTION func_annual_salRETURN BOOLEAN -- when want to check employee's annual salary -- which is more than 1000IS v_sal emp.sal%TYPE ; CURSOR cur_sal IS SELECT NVL(sal, 0) * 12 from emp ;BEGIN OPEN cur_sal ; LOOP FETCH cur_sal INTO v_sal ; IF v_sal > 1000 THEN RETURN (TRUE) ; ELSE RETURN (FALSE) ; END IF ; EXIT WHEN cur_sal%NOTFOUND ; END LOOP ; CLOSE cur_sal ;END func_annual_sal ;ثم نكتب الاجراء التالي :-CREATE OR REPLACE PROCEDURE proc_annual_salIS v_sal := func_annual_sal ; -- we declare v_sal variable to the -- previous function createdBEGIN IF func_annual_sal THEN DBMS_OUTPUT.PUT_LINE (v_sal) ; -- This means fuction return -- true ELSE -- If function returns false RAISE_APPLICATION_ERROR (-20202, 'There is no employee whose annual salary more than 1000') ; END IF ;END proc_annual_sal ;SQL> SET SERVEROUTPUT ONSQL> EXEC PROC_ANNUAL_SALثم ستحصل على الاجابة بعد تنفيذ الاجراء تقديم بلاغ
بتاريخ: 31 ديسمبر 200520 سنة كاتب الموضوع comment_56190 شكرا على مشاركتكم في الموضوع ..؟...!!!جاري التجربة وسوف اوافيكم بالاخبار إلى اللقاء تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.