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

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

صورة
- - - - -

مين يساعدني أين الخطأ اعتقد يقول فاصلة منقوطة


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

#1 majed85

majed85

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 23 December 2009 - 08:55 PM

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;
/


اكون له من الشاكرين أنا في انتظار الجواب ياليت يكون الان لأني على الموقع .............سوف أدعو له في ظهر الغيب


#2 majed85

majed85

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 23 December 2009 - 09:28 PM

5 قراء ولم اجد الاجابة

والله الموضوع هذا اخذ مني اسبوع ياليت اللي يقدر يساعدني لا يتأخر

#3 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 23 December 2009 - 09:48 PM

حضرتك معرف current_date من نوع date
دلوقتى حضرتك عامل متغير اسمه fine بس من نوع نمبر

fine := current_date - NUM ;
تاريخ -رقم هيرجع تاريخ ..يعنى المفروض المتغير يكون من نوع date
جرب .. وع اساسه غير الباقى ال ع fine


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif


#4 Ahmed_oracle

Ahmed_oracle

    عضو نشط

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

تاريخ المشاركة 23 December 2009 - 09:54 PM

توجد اخطاء فى ترتيب الحل

وليس فى كتابة الاوامر فقط

اعرض فكرة السؤال .... حتى يمكن المساعدة

تم التعديل بواسطة Ahmed_oracle, 23 December 2009 - 10:28 PM.

سبحان الله ... والحمد لله 


#5 mostfa_future

mostfa_future

    عضو مميز

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

تاريخ المشاركة 24 December 2009 - 03:28 PM

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;
end if;
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;
جرب كده ياخى وان شاالله شغال
يارت تبين ان كان اشتغل ولا لا
لان انا معنديش الجدوال بتاعتك

لا تحسبن المجد تمرا أنت اكله *** لن تبلغ المجد حتى تلعق الصبر


صورةصورة