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

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

صورة
- - - - -

ما هو الحل فى هذة الجملة


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

#1 joseph80

joseph80

    مشترك

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

تاريخ المشاركة 15 February 2010 - 04:17 PM

اعضاء المنتدى الكرام اريد حلا لهذة المشكلة ارجوكم و لكم جزيل الشكر
function lagi2Formula return Char is
begin declare
v_void_date varchar2(20);

begin select nvl(void_date,'01_sep_09')
into v_void_date from ap_checks_all
where rownum < 2;
if sysdate > v_void_date then
return ('لاغى');
else
return null;

end if;
end;
end;



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

#2 morgan_ahmed

morgan_ahmed

    عضو

  • الأعضــاء
  • 8 مشاركة
  • الاسم الأول:Ahmed
  • اسم العائلة:Morgan
  • البـلـد: Country Flag

تاريخ المشاركة 15 February 2010 - 07:05 PM

حاول تضع
IF to_char(sysdate,'DD/MM/YYYY') > to_char(v_void_date,'DD/MM/YYYY') THEN
بدلا من
if sysdate > v_void_date then

#3 joseph80

joseph80

    مشترك

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

تاريخ المشاركة 16 February 2010 - 10:28 AM

اشكر تعب محبتك اخ مرجان
و لكن للاسف بعد كتابة هذا الكود
function lagi2Formula return Char is
begin
declare
v_void_date varchar2(20);

begin
select nvl(void_date,'2009/12/01')
into v_void_date
from ap_checks_all
where rownum < 2;
IF to_char(sysdate,'yyyy/mm/dd') >= to_char(v_void_date,'yyyy/mm/dd') THEN

return ('&aacute;&Ccedil;&Ucirc;&igrave;');
else
return null;

end if;
end;
end;




تعطى هذا الخطاء ora-01861: literal dose not match format string

اشكرك جزيلا

#4 joseph80

joseph80

    مشترك

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

تاريخ المشاركة 16 February 2010 - 10:32 AM

اشكر تعب محبتك اخ مرجان
و لكن للاسف بعد كتابة هذا الكود
function lagi2Formula return Char is

begin
declare
v_void_date varchar2(20);

begin
select nvl(void_date,'2009/12/01')
into v_void_date
from ap_checks_all
where rownum < 2;
IF to_char(sysdate,'yyyy/mm/dd') >= to_char(v_void_date,'yyyy/mm/dd') THEN

return ('لاغى');
else
return null;

end if;
end;
end;

تعطى هذا الخطاء ora-01861: literal dose not match format string

اشكرك جزيلا

#5 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,869 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 16 February 2010 - 10:45 AM

السلام عليكم
جرب مع هذا التعديل:

Function Lagi2Formula Return Char Is
Begin Declare
V_Void_Date Varchar2(20);

Begin Select Nvl(To_Char(Void_Date, 'DD-MM-YYYY'),'01-09-09')
Into V_Void_Date From Ap_Checks_All
Where Rownum < 2;
If To_Char(Sysdate,'DD-MM-YYYY') > To_Char(V_Void_Date,'DD-MM-YYYY') Then Then
Return ('لاغي');
Else
Return Null;
End If;
End;
End;

تم التعديل بواسطة PALI.ORACLE, 16 February 2010 - 10:56 AM.

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist

 


#6 joseph80

joseph80

    مشترك

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

تاريخ المشاركة 16 February 2010 - 11:35 AM

اشكرك ايها الاخ العزيز و اشكر تعب محبتك
و لكن هناك خطاء بالnvl
الموجود فى المرفقات
و اشكر تعب محبتك و ربنا يعوضك

ملفات مرفقة

  • ملف مرفق  errrrrrorr.doc   83.5كيلو   20 عدد مرات التحميل


#7 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 February 2010 - 11:50 AM

السلام عليكم

المفروض تستبدل to_char بـ to_date لانك بتخزن الاي خارج من السيليكت في متغير نوعه char
وفي ال else خليها تسترجع مثلا غير لاغي
موفق

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين