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

استعلام مش شغال او مش عارف اعملة


yousef mohamed

Recommended Posts

عندى حقل تاريخ الاجازة عايز اعمل له سيلكت واقارنة بالجديد علشان عدم تكرار ادخال الاجازة كتبتة بالمنظر دة بس مش شغال

declare
    u varchar2 (150) ;
    begin
select  To_Char(s_Date,'dd-mm-yyyy') into u from vacation_d where emp_no= :VACATION.emp_no ;
if To_Char(:s_Date,'dd-mm-yyyy') = To_Char(u,'dd-mm-yyyy') then
    message ('هذه الاجازة مسجلة من قبل');

end if;
    end;
تم تعديل بواسطة ميسم الكرام
رابط هذا التعليق
شارك

الكود صحيح ولكن يمكن يكون عشان المتغير الذي تم تعريفة (u) يجب تغيير تسميته الى oldate مثلا ،

 

فيصبح الكود  

declare
    oldate nvarchar2(50);
    begin
select  To_Char(s_Date,'dd-mm-yyyy') into oldate from vacation_d where emp_no= :VACATION.emp_no ;


if To_Char(:s_Date,'dd-mm-yyyy') = To_Char(oldate,'dd-mm-yyyy') then
    message ('هذه الاجازة مسجلة من قبل');


end if;
    end;

والله اعلم 

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

الاخ العزيز

Faisal Matari   للاسف جربت الكود وبيدى خطأ بردو مش شغال وشكرا على المساعدة مع خالص حبى واعتزازى

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

تقريبا بيرجع باكثر من قيمة لان التسجيل فيه اكتر من اجازة كدة مظبوط ولا انا غلطان انا مش فاهم بصراحة الخطأ فين بس هو بعمل خطأ فى التريجر 

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

المفروض ان الخطأ ليه رقم , فمينفعش تقريبا ,

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

بس هو في اكتر من قيمة متشابهة ازاى وانت مش عايزه يشيل اكتر من قيمة متشابهة ؟ !

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

إذا كان الخطأ أنه يرجع أكثر من قيمة فهناك حل هو اختيار القيمة رقم 1 كما يلي:

select  To_Char(s_Date,'dd-mm-yyyy') into oldate from vacation_d where emp_no= :VACATION.emp_no and rownum =1;
رابط هذا التعليق
شارك

السلام عليكم

جرب الكود:

 

DECLARE
   CURSOR C
   IS
      SELECT TO_CHAR (S_DATE, 'DD-MM-YYYY') S_DATE
        FROM VACATION_D
       WHERE EMP_NO = :VACATION.EMP_NO;
BEGIN
   FOR REC IN C
   LOOP
      IF TO_CHAR (:S_DATE, 'DD-MM-YYYY') = REC.S_DATE
      THEN
         MESSAGE ('هذه الاجازة مسجلة من قبل');
         MESSAGE ('هذه الاجازة مسجلة من قبل');
      END IF;
   END LOOP;
END;
رابط هذا التعليق
شارك

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

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

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

×   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.

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

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

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