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

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

صورة
- - - - -

cursor in funciton


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

#1 a5hhk

a5hhk

    عضو نشط

  • الأعضــاء
  • 345 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 18 April 2006 - 11:23 AM

يا شباب هذه الدالة صحيحة ولا يوجد بها أخطاء لكن المشكلة في النتيجة
function CF_1Formula return Number is
x NUMBER;

CURSOR update_dn
IS
SELECT stu_number
FROM student_table
WHERE TRUNC (date) = :D
and stu_number between 122023 and 122033;
BEGIN
OPEN update_dn;

LOOP
FETCH update_dn
INTO x;

RETURN x;
EXIT WHEN update_dn%NOTFOUND;
END LOOP;
END;

أريد فقط طباعة الأرقام الموجود في النطاق بين الرقمين
ولكن النتيجة أرقام كثييييييييييرة متكررة

الرجاء المساعدة يا شباب

ملاحظة : أنا أستخدم هذه الدالة في Oracle Report

#2 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 18 April 2006 - 02:45 PM

المشكلة عندك اخي ب TRUNC فأنت لم تحدد طبيعة الفورمات
function CF_1Formula return Number is
x NUMBER;

CURSOR update_dn IS
         SELECT DISTINCT stu_number
         FROM student_table
        WHERE TRUNC (date,'YEAR')   = TRUNC(:UR_DATE,'YEAR')
     and 
       (stu_number between 122023 and 122033);
    BEGIN
   FOR i IN update_dn  LOOP
       x :=i.stu_number;
      RETURN (x);
        EXIT WHEN update_dn%NOTFOUND;
   END LOOP;
END;
هذه هي الامثلة على استخدام ال TRUNC
For example:

[CODE]
Below are the valid format parameters:

Unit Valid format parameters 
Year             SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y 
ISO               Year IYYY, IY, I 
Quarter        Q 
Month           MONTH, MON, MM, RM 
Week            WW 
IW                  IW 
W                   W 
Day                DDD, DD, J 
Start              day of the week DAY, DY, D 
Hour              HH, HH12, HH24 
Minute           MI [/code]


[code]
trunc(to_date('22-AUG-03'), 'YEAR') would return '01-JAN-03' 
trunc(to_date('22-AUG-03'), 'Q') would return '01-JUL-03' 
trunc(to_date('22-AUG-03'), 'MONTH') would return '01-AUG-03' 
trunc(to_date('22-AUG-03'), 'DDD') would return '22-AUG-03' 
trunc(to_date('22-AUG-03'), 'DAY') would return '17-AUG-03'

تم التعديل بواسطة Admin05, 18 April 2006 - 02:52 PM.

۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#3 a5hhk

a5hhk

    عضو نشط

  • الأعضــاء
  • 345 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 April 2006 - 02:31 PM

شكار جزيلا لك أخي العزيز