بتاريخ: 7 مارس 20197 سنة comment_297951 مساعده في البوبيلدر كنت عايز حد يساعدني في عمل اسكربيت تفقيط و تحويل الارقام الي كتابه ضروري يا شباب بعد ازنكم بجد الموضوع تعبني جامد و شكرآ جزيلاً تقديم بلاغ
بتاريخ: 10 مارس 20197 سنة comment_297968 بصراحة مش فاهم اه هوا البوبيلدر لكن لو محتاج ملف التحويل بالجافا او procedure ف الداتا بيز ؟ الصراحة مش عارف ازاي ارفع الملفين لكن هضعهم أكواد تقديم بلاغ
بتاريخ: 10 مارس 20197 سنة comment_297969 package test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ArabicLiteralNumberParser { private static final String ZERO = "صفر"; private static final String ONE = "واحد"; private static final String TWO = "إثنان"; private static final String THREE = "ثلاثة"; private static final String FOUR = "أربعة"; private static final String FIVE = "خمسة"; private static final String SIX = "ستة"; private static final String SEVEN = "سبعة"; private static final String EIGHT = "ثمانية"; private static final String NINE = "تسعة"; private static final String TEN = "عشرة"; private static final String TWENTY = "عشرون"; private static final String THIRTY = "ثلاثون"; private static final String FOURTY = "أربعون"; private static final String FIFTY = "خمسون"; private static final String SIXTY = "ستون"; private static final String SEVENTY = "سبعون"; private static final String EIGHTY = "ثمانون"; private static final String NINETY = "تسعون"; private static final String HUNDRED = "مائة"; private static final String THOUSAND = "الف"; private static final String MILLION = "مليون"; private static final String MILLIARD = "مليار"; private static final String BILLION = "بليون"; private static final String BILLIARD = "بليار"; private static final String TRILLION = "تريليون"; private static final Map<Long, String> namesMap; static { namesMap = new HashMap<Long, String>(); namesMap.put(0l, ZERO); namesMap.put(1l, ONE); namesMap.put(2l, TWO); namesMap.put(3l, THREE); namesMap.put(4l, FOUR); namesMap.put(5l, FIVE); namesMap.put(6l, SIX); namesMap.put(7l, SEVEN); namesMap.put(8l, EIGHT); namesMap.put(9l, NINE); namesMap.put(10l, TEN); namesMap.put(20l, TWENTY); namesMap.put(30l, THIRTY); namesMap.put(40l, FOURTY); namesMap.put(50l, FIFTY); namesMap.put(60l, SIXTY); namesMap.put(70l, SEVENTY); namesMap.put(80l, EIGHTY); namesMap.put(90l, NINETY); namesMap.put(100l, HUNDRED); namesMap.put(1000l, THOUSAND); namesMap.put(1000000l, MILLION); namesMap.put(1000000000l, MILLIARD); namesMap.put(1000000000000l, BILLION); namesMap.put(1000000000000000l, BILLIARD); namesMap.put(1000000000000000000l, TRILLION); } private static String parse(long a) { StringBuffer buf = new StringBuffer(Long.valueOf(a).toString()); buf.reverse(); int index = 0; boolean negative; int len = (negative = buf.charAt(buf.length() - 1) == '-') ? buf.length() - 1 : buf.length(); String[] name = new String[len]; long unitValue = 0; while (index < len) { Long n = Long.valueOf(String.valueOf(buf.charAt(index))); int decimalPos = index % 3; if (decimalPos == 0) { unitValue = (Double.valueOf(Math.pow(10, index)).longValue()); } int decimalPlace = (Double.valueOf(Math.pow(10, decimalPos)).intValue()); switch (decimalPlace) { case 1: if (unitValue > 1l && index + 1 == len) { switch (n.intValue()) { case 1: name[index] = namesMap.get(unitValue); break; case 2: name[index] = namesMap.get(unitValue).concat("ان"); break; default: if (unitValue == 1000l) { name[index] = namesMap.get(n) + " " + "الاف"; } else if (unitValue == 1000000l) { name[index] = namesMap.get(n) + " " + "ملايين"; } else { name[index] = namesMap.get(n) + " " + namesMap.get(unitValue) + "ات"; } } } else { name[index] = namesMap.get(n); } break; case 10: String tmp = name[index - 1]; if (n == 1l) { if (tmp.equals(ONE)) { tmp = tmp.substring(1, tmp.length()); } else if (tmp.equals(TWO)) { tmp = tmp.substring(0, tmp.length() - 1); } } if (unitValue > 1l && index + 1 == len) { if (n == 1 && tmp.equals(ZERO)) { if (unitValue == 1000l) { name[index] = TEN + "الاف "; } else if (unitValue == 1000000l) { name[index] = TEN + "ملايين "; } else { name[index] = TEN + " " + namesMap.get(unitValue) + "ات"; } } else { name[index] = namesMap.get(n * 10l) + " " + namesMap.get(unitValue); } } else { name[index] = namesMap.get(n * 10l); } if (n != 0l) { name[index - 1] = name[index]; name[index] = tmp; } break; case 100: String s; if (n > 2) { s = namesMap.get(n); s = s.substring(0, s.length() - (n == 8 ? 2 : 1)) + HUNDRED; } else { s = n == 2 ? "مائتان" : namesMap.get(n * 100); } if (unitValue > 1l && !name[index - 2].equals(ZERO)) { Iterator i = namesMap.keySet().iterator(); while (i.hasNext()) { Long val = (Long) i.next(); if (namesMap.get(val).equals(name[index - 2])) { if (val > 2l && val <= 10l) { if (unitValue == 1000l) { name[index - 2] = name[index - 2] + " " + "الاف"; } else if (unitValue == 1000000l) { name[index - 2] = name[index - 2] + " " + "ملايين"; } else { name[index - 2] = name[index - 2] + " " + namesMap.get(unitValue) + "ات"; } } else { name[index - 2] = name[index - 2] + " " + namesMap.get(unitValue); } break; } } } else if (unitValue > 1l && n != 0) { s = s + " " + namesMap.get(unitValue); } name[index] = s; } index++; } String s = ""; for (int i = 0; i < len; i++) { if (name[i].equals(ZERO)) { continue; } name[i] = name[i].trim(); s = name[i] + (!s.isEmpty() && !(s.startsWith(TEN) && !name[i - 1].equals(ZERO)) ? " و" : " ") + s; } return s.isEmpty() ? ZERO : (negative ? "سالب " + s : s).trim(); } public static String literalValueOf(Number a) { if (a.doubleValue() > Long.MAX_VALUE) { return " اكبر من " + parse(Long.MAX_VALUE); } a = String.valueOf(a).toLowerCase().contains("e") ? a.longValue() : a; String[] array = String.valueOf(a).split("\\."); long i = Long.valueOf(array[0]); long f = array.length == 2 ? Long.valueOf(array[1]) : 0; int fractSize = f > 0 ? array[1].length() : 0; String integralPart = (i != 0 || f == 0) ? parse(i) : ""; String fractionalPart = f > 0 ? parse(f) + " من " + parse(Double.valueOf(Math.pow(10, fractSize)).longValue()) : ""; return integralPart + (f * i != 0 ? " و " : "") + fractionalPart; } ///For testing, please remove! public static void main(String[] args) { System.out.println(literalValueOf(Long.MAX_VALUE)); } } تقديم بلاغ
بتاريخ: 10 مارس 20197 سنة comment_297970 دي كانت الجافا والتالي هي function في الداتا بيز FUNCTION AR_SP_OUT (amount number) RETURN VARCHAR2 IS amnt_num number := amount; amnt_char varchar2(50); amnt1_char varchar2(50); frac_char varchar2(50); amnt varchar2(50); amnt1 varchar2(50); sub1 varchar2(300) := null; sub2 varchar2(300) := null; sub3 varchar2(300) := null; sub4 varchar2(300) := null; sub5 varchar2(300) := null; plural VARCHAR2(1); ln number; ln1 number; ln2 number; fc number; /* ------------------------------------------------------------ */ halala varchar2(10):='قرشاً'; halalat varchar2(10):='قروش'; riyal varchar2(8):='جنيهاً'; riyalat varchar2(10):= 'جنيهات'; miyat VARCHAR2(3) := 'مئة'; miyatain VARCHAR2(5) := 'مئتين'; alf VARCHAR2(3):= 'الف'; alfain VARCHAR2(5) := 'الفين'; alaf VARCHAR2(4) := 'آلاف'; million VARCHAR2(5) := 'مليون'; millionain VARCHAR2(7):= 'مليونين'; malayeen VARCHAR2(6) := 'ملايين'; miliar VARCHAR2(5) := 'مليار'; miliarain VARCHAR2(7) := 'مليارين'; miliarat VARCHAR2(7) := 'مليارات'; wa VARCHAR2(3) := 'و'; /* ------------------------------------------------------------ */ function is_zero(amnt VARCHAR2, l number) return boolean is /* ------------------------------------------------------------ */ stat boolean := true; m number := 1; begin while m <= l loop if substr(amnt,m,1) != 0 then stat := false; exit; end if; m := m + 1; end loop; return(stat); end; /* ------------------------------------------------------------ */ function ONES(num number) return VARCHAR2 is /* ------------------------------------------------------------ */ begin if num = 0 then return(null); elsif num = 1 then return('واحد'); elsif num = 2 then return('اثنين'); elsif num = 3 then return('ثلاثة'); elsif num = 4 then return('اربعة'); elsif num = 5 then return('خمسة'); elsif num = 6 then return('ستة'); elsif num = 7 then return('سبعة'); elsif num = 8 then return('ثمانية'); elsif num = 9 then return('تسعة'); end if; end; /* ------------------------------------------------------------ */ function TENS(num number) return VARCHAR2 is /* ------------------------------------------------------------ */ begin if num = 0 then return(null); elsif num = 11 then return('احدى عشر'); elsif num = 12 then return('اثنى عشر'); elsif num = 13 then return('ثلاثة عشر'); elsif num = 14 then return('اربعة عشر'); elsif num = 15 then return('خمسة عشر'); elsif num = 16 then return('ستة عشر'); elsif num = 17 then return('سبعة عشر'); elsif num = 18 then return('ثمانية عشر'); elsif num = 19 then return('تسعة عشر'); elsif num = 10 or num = 1 then return('عشرة'); elsif num = 20 then return('عشرين'); elsif num = 30 then return('ثلاثين'); elsif num = 40 then return('اربعين'); elsif num = 50 then return('خمسين'); elsif num = 60 then return('ستين'); elsif num = 70 then return('سبعين'); elsif num = 80 then return('ثمانين'); elsif num = 90 then return('تسعين'); end if; end ; /* ------------------------------------------------------------ */ function HUNDRED(num number) return VARCHAR2 is /* ------------------------------------------------------------ */ begin if num = 100 then return(miyat); elsif num = 200 then return(miyatain); elsif num = 300 then return('ثلاثمائة'); elsif num = 400 then return('اربعمائة'); elsif num = 500 then return('خمسمائة'); elsif num = 600 then return('ستمائة'); elsif num = 700 then return('سبعمائة'); elsif num = 800 then return('ثمانمائة'); elsif num = 900 then return('تسعمائة'); end if; end; /* ------------------------------------------------------------ */ function one_digit(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ begin if amnt = 0 then return(null); elsif amnt = 1 then return ('جنيهاً واحداً'); elsif amnt = 2 then return('جنيهين'); else return(ONES( to_number(amnt))||' '||riyalat); end if; end; /* ---------- @ ÿÿÿش l -------------------------------------------------- */ function two_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(30) := null; sub2 varchar2(30) := null; first_digit VARCHAR2(1); second_digit VARCHAR2(1); begin first_digit := substr(amnt,1,1); second_digit := substr(amnt,2,1); if first_digit = 0 then -- return(one_digit(second_digit)); -- sub1 := null; sub1 := one_digit(second_digit); end if; if first_digit = 1 or second_digit = 0 then -- if first_digit not null and second_digit = 0 then sub1 := TENS( to_number(amnt)); else sub1 := ONES( to_number(second_digit)); sub2 := TENS( to_number(first_digit) * 10); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa; end if; return(sub1 || ' ' || sub2); end ; /* ------------------------------------------------------------ */ function one_digit_h(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ begin if amnt = 0 then return(null); elsif amnt = 1 then return ('قرشاً واحداً'); elsif amnt = 2 then return('قرشين'); else return(ONES( to_number(amnt))||' '||halalat); end if; end; /* ------------------------------------------------------------ */ function two_digits_h(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(30) := null; sub2 varchar2(30) := null; first_digit VARCHAR2(1); second_digit VARCHAR2(1); begin first_digit := substr(amnt,1,1); second_digit := substr(amnt,2,1); if first_digit <> 1 and second_digit <> 0 then sub1 := ONES( to_number(second_digit)); sub2 := TENS( to_number(first_digit) * 10); if sub2 is not null then sub1 := sub1 || ' ' || wa; end if; return(sub1||' '|| sub2 || ' ' || halala); end if; if first_digit = 0 then -- sub2 := one_digit_h(second_digit); return(one_digit_h(second_digit)); end if; if first_digit = 1 or second_digit = 0 then sub1 := TENS( to_number(amnt)); sub2 := null; return(sub1|| ' ' || halala); end if; if first_digit > 1 or second_digit = 0 then sub1 := TENS( to_number(amnt)*10); sub2 := null; return(sub1|| ' ' || halala); end if; end ; /* ------------------------------------------------------------ */ function three_digits (amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(500) := null; sub2 varchar2(500) := null; first_digit VARCHAR2(1); second_digit VARCHAR2(1); begin first_digit := substr(amnt,1,1); if first_digit = 0 then return(two_digits( substr(amnt,2,2))); end if; sub1 := HUNDRED( to_number(first_digit)*100); if is_zero( substr(amnt,2,2), 2) then sub2 := null; else sub1 := sub1 || ' ' || wa; sub2 := two_digits( substr(amnt,2,2)); end if; return(sub1||' '||sub2); end; /* ------------------------------------------------------------ */ function four_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(three_digits(substr(amnt,2,3))); end if; if substr(amnt,1,1) = 1 then sub1 := alf; sub2 := null; elsif substr(amnt,1,1) = 2 then sub1 := alfain; sub2 := null; else sub1 := ONES( to_number(substr(amnt,1,1))) || ' ' || alaf; sub2 := null; end if; if to_number(substr(amnt,2,3)) > 0 then sub2 := three_digits(substr(amnt,2,3)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function five_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(four_digits(substr(amnt,2,4))); end if; sub1 := two_digits( substr(amnt,1,2)); if substr(amnt,1,2) = 1 then sub1 := sub1 ||' '||alaf; else sub1 := sub1 ||' '||alf; end if; /*if to_number(substr(amnt,2,4)) > 0 then sub2 := three_digits(substr(amnt,3,3)); end if;*/ if to_number(substr(amnt,3,3)) > 0 then sub2 := three_digits(substr(amnt,3,3)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa|| ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function six_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(five_digits(substr(amnt,2,5))); end if; if substr(amnt,2,2) = '01' then sub1 := three_digits( '100'); sub1 := sub1 || ' ' || wa || ' ' || alf; elsif substr(amnt,2,2) = '02' then sub1 := three_digits( '100'); sub1 := sub1 || ' ' || wa || ' ' || alfain; elsif substr(amnt,2,2) = '10' then sub1 := three_digits(substr(amnt,1,3))||' '||alaf; else sub1 := three_digits(substr(amnt,1,3))||' '||alf; end if; /*if to_number(substr(amnt,2,5)) > 0 then sub2 := three_digits(substr(amnt,4,3)); end if;*/ if to_number(substr(amnt,4,3)) > 0 then sub2 := three_digits(substr(amnt,4,3)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function seven_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(six_digits(substr(amnt,2,6))); end if; if substr(amnt,1,1) = 1 then sub1 := million; elsif substr(amnt,1,1) = 2 then sub1 := millionain; else sub1 := ONES(substr(amnt,1,1))||' '||malayeen; end if; if to_number(substr(amnt,2,6)) > 0 then sub2 := six_digits( substr(amnt,2,6)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function eight_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(seven_digits(substr(amnt,2,7))); end if; sub1 := two_digits(substr(amnt,1,2)); if substr(amnt,1,2) = '10' then sub1 := sub1 ||' '||malayeen; else sub1 := sub1 ||' '||million; end if; if to_number(substr(amnt,2,7)) > 0 then sub2 := six_digits( substr(amnt,3,6)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function nine_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(eight_digits(substr(amnt,2,8))); end if; sub1 := HUNDRED(to_number(substr(amnt,1,1))*100); if substr(amnt,2,1) = 0 then if substr(amnt,3,1) = 1 then sub1 := sub1|| ' ' || wa|| ' ' || ONES(1)||' '||million; elsif substr(amnt,3,1) = 2 then sub1 := sub1|| ' ' || wa||' '||millionain; elsif substr(amnt,2,2) = '00' then sub1 := sub1 ||' '||million; else sub1 := sub1|| ' ' || wa||' '||ONES( to_number(substr(amnt,3,1)))||' '||malayeen; end if; elsif substr(amnt,2,2) = '10' then sub1 := sub1 || ' ' || wa||' '||TENS(to_number(substr(amnt,2,2)))|| ' '||malayeen; else sub1 := sub1|| ' ' || wa ||' '||two_digits(substr(amnt,2,2))|| ' '||million; end if; if to_number(substr(amnt,4,6)) > 0 then sub2 := six_digits( substr(amnt,4,6)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function ten_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------ ` ÿÿÿش ! l ------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(nine_digits(substr(amnt,2,9))); end if; if substr(amnt,1,1) = 1 then sub1 := miliar; elsif substr(amnt,1,1) = 2 then sub1 := miliarain; else sub1 := ONES(substr(amnt,1,1))||' '||miliarat; end if; if to_number(substr(amnt,4,7)) > 0 then sub2 := nine_digits( substr(amnt,2,9)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa|| ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function eleven_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(ten_digits(substr(amnt,2,10))); end if; sub1 := two_digits(substr(amnt,1,2)); if substr(amnt,1,2) = '10' then sub1 := sub1 ||' '||miliarat; else sub1 := sub1||' '||miliar; end if; if substr(amnt,4,8) > 0 then sub2 := nine_digits( substr(amnt,3,9)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ function twelve_digits(amnt VARCHAR2) return VARCHAR2 is /* ------------------------------------------------------------ */ sub1 varchar2(200) := null; sub2 varchar2(200) := null; begin if substr(amnt,1,1) = 0 then return(eleven_digits(substr(amnt,2,11))); end if; sub1 := HUNDRED(to_number(substr(amnt,1,1))*100); if substr(amnt,2,1) = 0 then if substr(amnt,3,1) = 1 then sub1 := sub1|| ' ' || wa || ' ' || ONES(1)||' '||miliar; elsif substr(amnt,3,1) = 2 then sub1 := sub1|| ' ' || wa ||' '||miliarain; elsif substr(amnt,2,2) = '00' then sub1 := sub1 ||' '||miliar; else sub1 := sub1|| ' ' || wa||' '||ONES( to_number(substr(amnt,3,1)))||' '||miliarat; end if; elsif substr(amnt,2,2) = '10' then sub1 := sub1 || ' ' || wa||' '||TENS(to_number(substr(amnt,2,2)))|| ' '||miliarat; else sub1 := sub1|| ' ' || wa ||' '||two_digits(substr(amnt,2,2))|| ' '||miliar; end if; if to_number(substr(amnt,4,9)) > 0 then sub2 := nine_digits( substr(amnt,4,9)); end if; if sub2 is not null then sub1 := sub1 || ' ' || wa || ' ' || sub2; end if; return(sub1); end; /* ------------------------------------------------------------ */ procedure check_riyals(amnt VARCHAR2) is /* ------------------------------------------------------------ */ begin if amnt = '10' then sub1 := sub1 ||' '||riyalat; elsif amnt between '01' and '09' then null; elsif ln = 1 then null; else sub1 := sub1 ||' '||riyal; end if; if ln1 > 0 then sub1 := sub1 || ' ' || wa || ' ' || sub5 ; end if; end; BEGIN -- main function starts -- amnt_char := to_char(amnt_num); ln1 := instr(amnt_char,'.'); if ln1 > 0 then frac_char := substr(amnt_char,ln1+1,2); amnt_char := substr(amnt_char,1,ln1-1); end if; ln := NVL(NVL(length(amnt_char), 0), 0); ln2 := NVL(NVL(length(frac_char ), 0), 0); if ln1 > 0 then sub5 := two_digits_h(frac_char); end if; if ln = 1 then sub1 := one_digit(amnt_char); check_riyals(amnt_char); elsif ln= 2 then sub1 := two_digits(amnt_char); check_riyals(amnt_char); elsif ln = 3 then sub1 := three_digits(amnt_char); check_riyals(substr(amnt_char,2,2)); elsif ln = 4 then sub1 := four_digits(amnt_char); check_riyals(substr(amnt_char,3,2)); elsif ln = 5 then sub1 := five_digits(amnt_char); check_riyals(substr(amnt_char,4,2)); elsif ln = 6 then sub1 := six_digits(amnt_char); check_riyals(substr(amnt_char,5,2)); elsif ln = 7 then sub1 := seven_digits(amnt_char); check_riyals(substr(amnt_char,6,2)); elsif ln = 8 then sub1 := eight_digits(amnt_char); check_riyals(substr(amnt_char,7,2)); elsif ln = 9 then sub1 := nine_digits(amnt_char); check_riyals(substr(amnt_char,8,2)); elsif ln = 10 then sub1 := ten_digits(amnt_char); check_riyals(substr(amnt_char,9,2)); elsif ln = 11 then sub1 := eleven_digits(amnt_char); check_riyals(substr(amnt_char,10,2)); elsif ln = 12 then sub1 := twelve_digits(amnt_char); check_riyals(substr(amnt_char,11,2)); elsif ln = 0 and ln2 > 0 then sub1 := two_digits_h(frac_char); else return(' لا يمكن استخدام أكثر من 12 رقم ... شكراً ' ); end if; return( sub1); END AR_SP_OUT; تقديم بلاغ
بتاريخ: 11 مارس 20197 سنة comment_297975 موضوع مكرر http://www.araboug.org/ib/index.php?showtopic=68051&do=findComment&comment=297955 تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.