الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة في : Ref_cursor ... في الشاشة يحضر اول ريكورد فقط

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته جميعا

اشكر الله سبحانه وتعالي  ثم اشكركم على المساعدة

 

اقوم بعمل شاشة لانشاء ارقام الجلوس فاقوم بتعبئة بيانات الطالب من الرقم و الاسم  والمستوى والتخصص وقمت بعمل تريجر لتعبئة ارقام الجلوس  والبيانات السابقة في جدول اخر

ولكن عند التنفيذ على التود السيكول تخرج كل البيانات تمام ولكن في الشاشة يحضر اول ريكورد فقط

فحاولت عمل loopاو ref_cursor

ولكن يعطي اخطاء

والكود مرفق ادناه


declare
  v_NUMBERS_SIT_ID_DET   number(10);
    v_USER_NUMBERS_SIT_ID_DET number(10);
    
  v_STUD_ID   number(10);
  v_USER_STUD_ID   number(10);
  v_SCHOOL_YEAR_ID   number(10);
  v_SCHOOL_ACT_YEAR_ID  number(10);
  v_SCHOOL_ACT_YEAR_DEPTID   number(10);

    cursor c_sn_seq is
    select NVL(max(NUMBERS_SIT_ID_DET),0)+1,NVL(max(USER_NUMBERS_SIT_ID_DET),0)+1
    from STD_NUMBERS_SIT_DETIAL;
    
    cursor c_data is

SELECT  a. stud_id,a.user_stud_id,a.school_year_id,a.school_act_year_id,a.school_act_year_deptid
      FROM std_study_level_students a
      where
      user_stud_id not in (select user_stud_id from std_outgoing)
    and SCHOOL_YEAR_ID= (select max (SCHOOL_YEAR_ID) from std_study_level_students)
  ORDER BY a.school_act_year_id,a.school_act_year_deptid desc,to_number(user_stud_id);
begin
    open c_sn_seq;
    fetch c_sn_seq into v_NUMBERS_SIT_ID_DET,v_USER_NUMBERS_SIT_ID_DET ;
--    close c_sn_seq;
    open c_data;
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
FOR employee_rec in c_data
   LOOP
    fetch c_data into v_STUD_ID  ,v_USER_STUD_ID   ,v_SCHOOL_YEAR_ID   ,v_SCHOOL_ACT_YEAR_ID  ,v_SCHOOL_ACT_YEAR_DEPTID  ;
--    close c_data;
--    message(:STD_NUMBERS_SIT.NUMBERS_SIT_ID);
--    message(v_USER_STUD_ID||'-'|| v_STUD_ID);

--for i in  c_data loop  
    insert into STD_NUMBERS_SIT_DETIAL(NUMBERS_SIT_ID_DET,
                                       USER_NUMBERS_SIT_ID_DET,
                                       NUMBERS_SIT_ID,
                                       USER_STUD_ID,
                                       STUD_ID,
                                       NUMBER_SIT,
                                       SCHOOL_YEAR_ID,
                                       UNVERSITY_YEAR,
                                       SCHOOL_ACT_YEAR_ID,
                                       USER_SCHOOL_ACT_YEAR_DEPTID,
                                       SEMESTER_ID )
         values
         (v_NUMBERS_SIT_ID_DET,
         v_USER_NUMBERS_SIT_ID_DET,
         :STD_NUMBERS_SIT.NUMBERS_SIT_ID,
             
         v_USER_STUD_ID,
             
         v_STUD_ID,
         std_sit_numbers(v_SCHOOL_ACT_YEAR_ID,v_SCHOOL_ACT_YEAR_DEPTID,:STD_NUMBERS_SIT.NUMBERS_SIT_ID),
         v_SCHOOL_YEAR_ID,
         :STD_NUMBERS_SIT.UNVERSITY_YEAR,
         v_SCHOOL_ACT_YEAR_ID,
         v_SCHOOL_ACT_YEAR_DEPTID,
         :STD_NUMBERS_SIT.SEMESTER_ID);
         next_record;
             end loop;
             close c_sn_seq;
            close c_data;
         
         commit;
         execute_query;
end;
بتاريخ:
  • كاتب الموضوع

 

السلام عليكم ورحمة الله وبركاته جميعا

اشكر الله سبحانه وتعالي  ثم اشكركم على المساعدة

 

اقوم بعمل شاشة لانشاء ارقام الجلوس فاقوم بتعبئة بيانات الطالب من الرقم و الاسم  والمستوى والتخصص وقمت بعمل تريجر لتعبئة ارقام الجلوس  والبيانات السابقة في جدول اخر

ولكن عند التنفيذ على التود السيكول تخرج كل البيانات تمام ولكن في الشاشة يحضر اول ريكورد فقط

فحاولت عمل loopاو ref_cursor

ولكن يعطي اخطاء

والكود مرفق ادناه

declare
  v_NUMBERS_SIT_ID_DET   number(10);
    v_USER_NUMBERS_SIT_ID_DET number(10);
    
  v_STUD_ID   number(10);
  v_USER_STUD_ID   number(10);
  v_SCHOOL_YEAR_ID   number(10);
  v_SCHOOL_ACT_YEAR_ID  number(10);
  v_SCHOOL_ACT_YEAR_DEPTID   number(10);

    cursor c_sn_seq is
    select NVL(max(NUMBERS_SIT_ID_DET),0)+1,NVL(max(USER_NUMBERS_SIT_ID_DET),0)+1
    from STD_NUMBERS_SIT_DETIAL;
    
    cursor c_data is

SELECT  a. stud_id,a.user_stud_id,a.school_year_id,a.school_act_year_id,a.school_act_year_deptid
      FROM std_study_level_students a
      where
      user_stud_id not in (select user_stud_id from std_outgoing)
    and SCHOOL_YEAR_ID= (select max (SCHOOL_YEAR_ID) from std_study_level_students)
  ORDER BY a.school_act_year_id,a.school_act_year_deptid desc,to_number(user_stud_id);
begin
    open c_sn_seq;
    fetch c_sn_seq into v_NUMBERS_SIT_ID_DET,v_USER_NUMBERS_SIT_ID_DET ;
--    close c_sn_seq;
    open c_data;
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
FOR employee_rec in c_data
   LOOP
    fetch c_data into v_STUD_ID  ,v_USER_STUD_ID   ,v_SCHOOL_YEAR_ID   ,v_SCHOOL_ACT_YEAR_ID  ,v_SCHOOL_ACT_YEAR_DEPTID  ;
--    close c_data;
--    message(:STD_NUMBERS_SIT.NUMBERS_SIT_ID);
--    message(v_USER_STUD_ID||'-'|| v_STUD_ID);

--for i in  c_data loop  
    insert into STD_NUMBERS_SIT_DETIAL(NUMBERS_SIT_ID_DET,
                                       USER_NUMBERS_SIT_ID_DET,
                                       NUMBERS_SIT_ID,
                                       USER_STUD_ID,
                                       STUD_ID,
                                       NUMBER_SIT,
                                       SCHOOL_YEAR_ID,
                                       UNVERSITY_YEAR,
                                       SCHOOL_ACT_YEAR_ID,
                                       USER_SCHOOL_ACT_YEAR_DEPTID,
                                       SEMESTER_ID )
         values
         (v_NUMBERS_SIT_ID_DET,
         v_USER_NUMBERS_SIT_ID_DET,
         :STD_NUMBERS_SIT.NUMBERS_SIT_ID,
             
         v_USER_STUD_ID,
             
         v_STUD_ID,
         std_sit_numbers(v_SCHOOL_ACT_YEAR_ID,v_SCHOOL_ACT_YEAR_DEPTID,:STD_NUMBERS_SIT.NUMBERS_SIT_ID),
         v_SCHOOL_YEAR_ID,
         :STD_NUMBERS_SIT.UNVERSITY_YEAR,
         v_SCHOOL_ACT_YEAR_ID,
         v_SCHOOL_ACT_YEAR_DEPTID,
         :STD_NUMBERS_SIT.SEMESTER_ID);
         next_record;
             end loop;
             close c_sn_seq;
            close c_data;
         
         commit;
         execute_query;
end;

ما هو الخطا في الــــــloop

بتاريخ:
  • كاتب الموضوع

 

 

السلام عليكم ورحمة الله وبركاته جميعا

اشكر الله سبحانه وتعالي  ثم اشكركم على المساعدة

 

اقوم بعمل شاشة لانشاء ارقام الجلوس فاقوم بتعبئة بيانات الطالب من الرقم و الاسم  والمستوى والتخصص وقمت بعمل تريجر لتعبئة ارقام الجلوس  والبيانات السابقة في جدول اخر

ولكن عند التنفيذ على التود السيكول تخرج كل البيانات تمام ولكن في الشاشة يحضر اول ريكورد فقط

فحاولت عمل loopاو ref_cursor

ولكن يعطي اخطاء

والكود مرفق ادناه

declare
  v_NUMBERS_SIT_ID_DET   number(10);
    v_USER_NUMBERS_SIT_ID_DET number(10);
    
  v_STUD_ID   number(10);
  v_USER_STUD_ID   number(10);
  v_SCHOOL_YEAR_ID   number(10);
  v_SCHOOL_ACT_YEAR_ID  number(10);
  v_SCHOOL_ACT_YEAR_DEPTID   number(10);

    cursor c_sn_seq is
    select NVL(max(NUMBERS_SIT_ID_DET),0)+1,NVL(max(USER_NUMBERS_SIT_ID_DET),0)+1
    from STD_NUMBERS_SIT_DETIAL;
    
    cursor c_data is

SELECT  a. stud_id,a.user_stud_id,a.school_year_id,a.school_act_year_id,a.school_act_year_deptid
      FROM std_study_level_students a
      where
      user_stud_id not in (select user_stud_id from std_outgoing)
    and SCHOOL_YEAR_ID= (select max (SCHOOL_YEAR_ID) from std_study_level_students)
  ORDER BY a.school_act_year_id,a.school_act_year_deptid desc,to_number(user_stud_id);
begin
    open c_sn_seq;
    fetch c_sn_seq into v_NUMBERS_SIT_ID_DET,v_USER_NUMBERS_SIT_ID_DET ;
--    close c_sn_seq;
    open c_data;
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
--    message(v_NUMBERS_SIT_ID_DET||'-'||v_USER_NUMBERS_SIT_ID_DET);
FOR employee_rec in c_data
   LOOP
    fetch c_data into v_STUD_ID  ,v_USER_STUD_ID   ,v_SCHOOL_YEAR_ID   ,v_SCHOOL_ACT_YEAR_ID  ,v_SCHOOL_ACT_YEAR_DEPTID  ;
--    close c_data;
--    message(:STD_NUMBERS_SIT.NUMBERS_SIT_ID);
--    message(v_USER_STUD_ID||'-'|| v_STUD_ID);

--for i in  c_data loop  
    insert into STD_NUMBERS_SIT_DETIAL(NUMBERS_SIT_ID_DET,
                                       USER_NUMBERS_SIT_ID_DET,
                                       NUMBERS_SIT_ID,
                                       USER_STUD_ID,
                                       STUD_ID,
                                       NUMBER_SIT,
                                       SCHOOL_YEAR_ID,
                                       UNVERSITY_YEAR,
                                       SCHOOL_ACT_YEAR_ID,
                                       USER_SCHOOL_ACT_YEAR_DEPTID,
                                       SEMESTER_ID )
         values
         (v_NUMBERS_SIT_ID_DET,
         v_USER_NUMBERS_SIT_ID_DET,
         :STD_NUMBERS_SIT.NUMBERS_SIT_ID,
             
         v_USER_STUD_ID,
             
         v_STUD_ID,
         std_sit_numbers(v_SCHOOL_ACT_YEAR_ID,v_SCHOOL_ACT_YEAR_DEPTID,:STD_NUMBERS_SIT.NUMBERS_SIT_ID),
         v_SCHOOL_YEAR_ID,
         :STD_NUMBERS_SIT.UNVERSITY_YEAR,
         v_SCHOOL_ACT_YEAR_ID,
         v_SCHOOL_ACT_YEAR_DEPTID,
         :STD_NUMBERS_SIT.SEMESTER_ID);
         next_record;
             end loop;
             close c_sn_seq;
            close c_data;
         
         commit;
         execute_query;
end;

ما هو الخطا في الــــــloop

 

لايوجد اي اقتراحات

بتاريخ:

 open c_data;

او

FOR employee_rec in c_data

 

وليس الاثنان معا

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.