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

ما الخطأ فى هذا الكود... Function يحتوى على Parameter


mohamed.ali

Recommended Posts

السلام عليكم ،،
أريد عمل Function يحتوى على Parameter عبارة عن رقم الموظف بحيث عندما أدخل رقم الموظف
تقوم بإرجاع عدد سنوات الخدمة .
فما الخطأ فى هذا الكوك..مع الشرح إذا سمحتم!

create or replace function get_service_yrs(p_empno in t_emp.empno%type)
return number IS
v_yrs number(30) ;
cursor emp_rec is
select empno,ename,hiredate from t_emp
where empno=p_empno ;
begin
for x in emp_rec loop
select (sysdate-hiredate)/365 service into v_yrs
from t_emp where current of emp_rec ;
end loop ;
return v_yrs ;


وجزاكم الله خيرا ،،

رابط هذا التعليق
شارك

بص انت اكتب الكود دا

CREATE FUNCTION GET_SERV(EMP NUMBER) RETURN NUMBER IS
s_date number;
BEGIN

FOR I IN (SELECT * FROM t_emp where empno=emp) loop
s_date := round((sysdate-i.hire_date)/365);
end loop;
return s_date;
end;

تم تعديل بواسطة HELL-BOY
رابط هذا التعليق
شارك

العفو اخي الكريم
انت ممكن تستغني عن اللوب تماما لانها هترجع قيمه واحده فانت مش محتاج تعمل لوب
انا كتبتهالك علشان بتبقا اسهل من انك تعمل ديكلير للكرسور بعد كدا تلوب عليه
كلمه
where current of cursor_name
بنكتبها لما الكرسور بيعمل ابضيت بس زي كدا

cursor waleed is select * from emp for update

هنا هنحتاج نكتب
update emp set sal = sal*1.1
where current of cursor_name

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية