majed85 بتاريخ: 23 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 23 ديسمبر 2009 create or replace procedure Print_Fine_List( current_date DATE := SYSDATE ) IS NUM NUMBER(2):= TO_NUMBER(TO_CHAR(REQ.request_date,'DD'); current_date := TO_NUMBER(TO_CHAR(current_date,'DD'); fine NUMBER(2) := 0; total_fine NUMBER(2):= 0; CURSOR corName IS select name from Borrower; brower_name Borrower%ROWTYPE; CURSOR BOOTITLE IS SELECT BOOk_title FROM BOOK; book_tit BOOK%ROWTYPE; CURSOR REQCORSOR IS SELECT request_date FROM Request ; REQ Request%ROWTYPE; BEGIN open corName; LOOP fetch corName INTO brower_name; EXIT WHEN corName%NOTFOUND; dbms_output.put_line(brower_name.name); END LOOP; Close corName; OPEN BOOTITLE; loop FETCH BOOTITLE INTO book_tit; EXIT WHEN BOOTITLE%NOTFOUND; IF book_tit.BOOK_ID = BORROW.B_ID THEN dbms_output.put_line(book_tit.BOOk_title); ENDIF; END LOOP; CLOSE BOOTITLE; IF BOOTITLE %ISOPEN THEN CLOSE BOOTITLE; OPEN REQCORSOR; loop FETCH REQCORSOR INTO REQ ; EXIT WHEN REQCORSOR%NOTFOUND; fine := current_date - NUM ; IF fine < 7 THEN dbms_output.put_line('No fine'); ELSIF fine > 7 THEN fine := fine - 7 ; fine := fine * 10 ; dbms_output.put_line('fine'); ENDIF; total_fine := total_fine + fine ; END LOOP; CLOSE REQCORSOR; EXCEPTION WHEN OTHERS THEN IF REQCORSOR%ISOPEN THEN CLOSE EQCORSOR; dbms_output.put_line(total_fine); END; / اكون له من الشاكرين أنا في انتظار الجواب ياليت يكون الان لأني على الموقع .............سوف أدعو له في ظهر الغيب اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
majed85 بتاريخ: 23 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 23 ديسمبر 2009 5 قراء ولم اجد الاجابة والله الموضوع هذا اخذ مني اسبوع ياليت اللي يقدر يساعدني لا يتأخر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
@nana@ بتاريخ: 23 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 23 ديسمبر 2009 حضرتك معرف current_date من نوع date دلوقتى حضرتك عامل متغير اسمه fine بس من نوع نمبر fine := current_date - NUM ;تاريخ -رقم هيرجع تاريخ ..يعنى المفروض المتغير يكون من نوع date جرب .. وع اساسه غير الباقى ال ع fine اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed_oracle بتاريخ: 23 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 23 ديسمبر 2009 (معدل) توجد اخطاء فى ترتيب الحل وليس فى كتابة الاوامر فقط اعرض فكرة السؤال .... حتى يمكن المساعدة تم تعديل 23 ديسمبر 2009 بواسطة Ahmed_oracle اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mostfa_future بتاريخ: 24 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 24 ديسمبر 2009 create or replace procedure Print_Fine_List( current_date DATE := SYSDATE )ISNUM NUMBER(2):= TO_NUMBER(TO_CHAR(REQ.request_date,'DD');current_date := TO_NUMBER(TO_CHAR(current_date,'DD');fine NUMBER(2) := 0;total_fine NUMBER(2):= 0;CURSOR corName ISselect name from Borrower; brower_name Borrower%ROWTYPE;CURSOR BOOTITLE ISSELECT BOOk_title FROM BOOK; book_tit BOOK%ROWTYPE;CURSOR REQCORSOR ISSELECT request_date FROM Request ;REQ Request%ROWTYPE;BEGIN open corName;LOOPfetch corName INTO brower_name; EXIT WHEN corName%NOTFOUND;dbms_output.put_line(brower_name.name);END LOOP;Close corName;OPEN BOOTITLE;loopFETCH BOOTITLE INTO book_tit; EXIT WHEN BOOTITLE%NOTFOUND;IF book_tit.BOOK_ID = BORROW.B_ID THENdbms_output.put_line(book_tit.BOOk_title);ENDIF;END LOOP;CLOSE BOOTITLE;IF BOOTITLE %ISOPEN THENCLOSE BOOTITLE;end if;OPEN REQCORSOR;loopFETCH REQCORSOR INTO REQ ;EXIT WHEN REQCORSOR%NOTFOUND;fine := current_date - NUM ;IF fine < 7 THENdbms_output.put_line('No fine');ELSIF fine > 7 THENfine := fine - 7 ;fine := fine * 10 ;dbms_output.put_line('fine');ENDIF;total_fine := total_fine + fine ;END LOOP;CLOSE REQCORSOR;EXCEPTION WHEN OTHERS THENIF REQCORSOR%ISOPEN THENCLOSE EQCORSOR;dbms_output.put_line(total_fine);END;جرب كده ياخى وان شاالله شغال يارت تبين ان كان اشتغل ولا لالان انا معنديش الجدوال بتاعتك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.