بتاريخ: 25 أكتوبر 200421 سنة comment_16313 هل توجد fuction تحول الارقام الى لغة معينة مثلا اذا اردنا كتابة 123على الشكلمائه ثلاث وعشروناذا وجد ارجو موافتى بهافقد صممت دالة خاصة فى oracleخاصة بلغه العربيه تقديم بلاغ
بتاريخ: 25 أكتوبر 200421 سنة comment_16380 يجب عليك يأخي كتابة اجراء على الداتا بيس وتعمل له منادة وهذا مثل بسيط على ذلك :PROCEDURE TFKEET (Value_In IN Number,Type_In IN Number, Text_Out OUT Varchar2) IS------------------------------------------------------------------------------ Value In = { Number(11.2)}: القيمة المطلوب تفقيطها ، ويجب ان تكون بالشكل ---- Type_In = مميز التفقيط ، ويساوى (1) للتعامل مع الريال والهللة ، ويساوى (2) للتعامل مع الأسهم ---- ويساوى (3) للتعامل مع الطن والكيلو ---- Text_out = المبلغ مفقط - ويصل طول العبارة الى 100 حرف ------------------------------------------------------------------------------Begin Declare Return_Text Varchar2(100) :=null; Send_Number CHAR(1); Type1 VARCHAR2(10); Type2 VARCHAR2(10); Type3 VARCHAR2(10); Type4 VARCHAR2(10); Type_F VARCHAR2(10); TEXT1 VARCHAR2(30); TEXT2 VARCHAR2(30); TEXT3 VARCHAR2(30); X Number; Y Number; X1 Number; I Number:=1; Reserve2 Char(1); Out_Text Varchar2(100); T_Text Varchar2(100); In_Number Number(12,3) :=Value_In; Integer_Number Number(9) :=Floor(In_number); Fraction_Number Number(3,3) :=In_number - Integer_Number; Frc_Number Number(3) :=Fraction_number * 1000; Begin----------------------------------------------------------------------------- If Type_In = 1 Then Type1 := 'ريال'; Type2 := 'ريالان'; Type3 := 'ريالآ'; Type4 := 'ريالات'; Type_F := 'هللة'; Frc_Number := Frc_number /10; ElsIf Type_In = 2 Then Type1 := 'سهم'; Type2 := 'سهمان'; Type3 := 'سهمآ'; Type4 := 'أسهم'; Type_F := Null; Frc_Number := Frc_number /10; Else Type1 := 'طن'; Type2 := 'طنان'; Type3 := 'طنآآ'; Type4 := 'أطنان'; Type_F := 'كيلو'; End If;----------------------------------------------------------------------------- For X IN 1..3 Loop Reserve2 := null; For Y In 1..3 Loop Return_text:=null; Send_Number:= substr(substr(lpad(to_char(Integer_Number),9,'0'),I,3),4-y,1); Begin Select Decode(Send_Number,1,'واحد',2,'إثنين',3,'ثلاث',4,'أربع' ,5,'خمس',6,'ست',7,'سبع',8,'ثمان',9,'تسع',NULL) Into Return_Text From dual; End; If Return_Text is not null Then If y = 1 Then If send_number not in (1,2) Then If send_number in (8) Then Text1:=Return_Text||'ية'; Else Text1:=Return_Text||'ة'; End If; Else Text1:=Return_Text; End If; reserve2:=send_number; Elsif y = 2 Then If send_number='1' Then If Reserve2 is null Then Text2:='عشرة'; Elsif Reserve2=1 Then Text2:='إحدى عشر'; Text1:= null; Elsif Reserve2=2 Then Text2:='إثنا عشر'; Text1:=null; Else Text2:=text1||' عشر'; text1:=null; End If; Elsif send_number='2' Then If reserve2 is null then text2:='عشرون'; elsif reserve2=1 then text2:='واحد وعشرين'; text1:= null; elsif reserve2=2 then text2:='إثنين وعشرين'; text1:=null; else text2:=text1||' وعشرون'; text1:=null; end if; else if text1 is not null then text2:=text1||' و'||RETURN_TEXT||'ون'; text1:=null; else text2:=RETURN_TEXT||'ون'; end if; end if; elsif y = 3 then if send_number='1'then text3:='مائة'; elsif send_number='2' then text3:='مائتان'; else text3:= return_text||'مائة'; end if; if text2 is not null or text1 is not null then text3:=text3||' و'; end if; end if;end if;end loop;-----------------------------------------------------------------------------text3:=(text3||text2||text1);if text3 is not null thenif x = 1 then if text3 = 'واحد' then text3:=' مليون '; elsif text3='اثنين' then text3:=' مليونان '; elsif text3 in ('ثلاثة','اربعة','خمسة','ستة','سبعة','ثمانية','تسعة','عشرة') then text3:=text3||' ملايين'; else text3:= text3||' مليون '; end if;elsif x = 2 then if text3 = 'واحد' then text3:=' الف '; elsif text3='إثنين' then text3:=' الفان '; elsif text3 in ('ثلاثة','أربعة','خمسة','ستة','سبعة','ثمانية','تسعة','عشرة') then text3:=text3||' آلاف'; else text3:= text3||' الف '; end if;end if; out_text:=text3;end if;if t_text is not null and out_text is not null then t_text:=t_text||' و'||out_text;else t_text:=t_text||out_text;end if;I:=I+3;text1:=null;text2:=null;text3:=null;out_text:=null;end loop;-----------------------------------------------------------------------------if t_text is not null then t_text:=t_text||' '||Type1;end if;---------------------------------------------------------------------------if t_text is not null then if Frc_Number > 0 then t_text:=(t_text||' و'||To_Char(Frc_Number))||' '||Type_F; end if;else if Frc_Number > 0 then t_text:=To_Char(Frc_Number)||' '||Type_F; end if;end if;---------------------------------------------------------------------------Text_Out :=' فقط '||t_text||' لاغير';end;end;وهذا ملف مرفق بالتفقيط _______.txt تقديم بلاغ
بتاريخ: 29 أكتوبر 200421 سنة comment_16829 شكرا الاخ ابراهيم...وايضا الشكر موصول للاخ sudan_home تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.