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

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

صورة
- - - - -

عايز يا جماعة اعمل function تحول اى رقم الى نفس الرقم بس بالحروف


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

#1 amropetro

amropetro

    عضو

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

تاريخ المشاركة 09 February 2009 - 09:41 AM

عايز يا جماعة اعمل function تحول اى رقم الى نفس الرقم بس بالحروف
ex:
112 تتحول الى مائة و اثنى عشرة
يا ريت تكونو فهمتونى مستنى الرد


#2 t-hassaan

t-hassaan

    عضو نشط

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

تاريخ المشاركة 09 February 2009 - 10:19 AM

هذا الكود منقول وقد عدلت فيه فقط لترجمة القيمة 0 مع الاعتذار لصاحب الكود الأصلى

CREATE OR REPLACE FUNCTION TAREK.NUMBER_CONVERSION_t(NUM NUMBER) RETURN VARCHAR2
IS
A VARCHAR2(1000);
B VARCHAR2(20);
X NUMBER;
Y NUMBER := 1;
Z NUMBER;
LSIGN NUMBER;
NO NUMBER;
BEGIN X:= INSTR(NUM, '.');
LSIGN := SIGN(NUM);
NO := ABS(NUM);
IF NO = 0 then
A := 'Zerooooooooooo' ;
return A ;

end if ;
IF X = 0 THEN
SELECT TO_CHAR(TO_DATE(NO, 'J'),'JSP') INTO A FROM DUAL;
ELSE
SELECT to_char(to_date(SUBSTR(NO, 1, NVL(INSTR(NO, '.')-1, LENGTH(NO))),'J'),'JSP') INTO A FROM DUAL;
SELECT LENGTH(SUBSTR(NO, INSTR(NO, '.')+1)) INTO Z FROM DUAL;
A := A ||' POINT ';
WHILE Y< Z+1
LOOP
SELECT TO_CHAR(TO_DATE(SUBSTR(NO, (INSTR(NO, '.')+Y), 1), 'J'), 'JSP') INTO B FROM DUAL;
A := A || B ||' ';
y :=y+1;
END LOOP;
END IF;
IF LSIGN = -1 THEN
RETURN 'NEGATIVE '||A;
ELSE
RETURN A;
END IF;

END;
/


وعلى فكرة الترجمة بالانجليزية - هل تريدها انجليزى او عربى ؟
طارق

#3 amropetro

amropetro

    عضو

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

تاريخ المشاركة 09 February 2009 - 12:55 PM

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

#4 amropetro

amropetro

    عضو

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

تاريخ المشاركة 09 February 2009 - 01:43 PM

طارق انا مستنى الرد
معلش يا باشا انا بتعبك

#5 t-hassaan

t-hassaan

    عضو نشط

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

تاريخ المشاركة 09 February 2009 - 02:15 PM

يا سيدى الفاضل
هذه ال function لا تنفعك حيث انها تقوم بتحويل الى الانجليزية فقط وعموما فهى تعتمد على loop يقوم بتحويل الارقام ال date باستخدام صيغة jsp حيث تقوم بترجمة الارقام
WHILE Y< Z+1
LOOP
SELECT TO_CHAR(TO_DATE(SUBSTR(NO, (INSTR(NO, '.')+Y), 1), 'J'), 'JSP') INTO B FROM DUAL;
A := A || B ||' ';
y :=y+1;
END LOOP;

لا تشغل بالك بهذا الكود حيث انه لن يفيدك فى التحويل الى العربية
عموما يمكنك تجربة هذا الكود فقط للتعرف على طريق استخدامه فقط
SELECT TO_CHAR(TO_DATE(123,'J'),'JSP') 
FROM dual;

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

#6 Ahmad.Hasan

Ahmad.Hasan

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

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

تاريخ المشاركة 09 February 2009 - 11:46 PM

السلام عليكم
هذه مشاركة سابقة للاخ العزيز هاني
تفضل....

ملفات مرفقة


.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

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