如何在oracle中选择数字并将数字从英文转换为阿拉伯语

时间:2017-11-20 09:29:50

标签: oracle oracle11g arabic

我有表格和这样的数据english number 我需要选择这些数据,但我需要它像这样 arabic number 如何将数字从英语转换为阿拉伯语

1 个答案:

答案 0 :(得分:2)

SQL Fiddle

Oracle 11g R2架构设置

CREATE FUNCTION numToEasternArabic(
  in_value IN NUMBER
) RETURN NVARCHAR2 DETERMINISTIC
IS
  p_num  VARCHAR2(100) := TO_CHAR( in_value );
  p_char CHAR(1);
  o_str  NVARCHAR2(100);
BEGIN
  FOR i IN 1 .. LENGTH( p_num ) LOOP
    p_char := SUBSTR( p_num, i, 1 );
    o_str := o_str
          || CASE p_char
             WHEN '.'
             THEN N'.'
             ELSE UNISTR(
                    '\' || TO_CHAR(
                             TO_NUMBER( p_char ) + 660,
                             'FM0000'
                           )
                  )
             END;
  END LOOP;
  RETURN o_str;
END;
/

查询1

SELECT numToEasternArabic( 1438 )
FROM   DUAL

<强> Results

| NUMTOEASTERNARABIC(1438) |
|--------------------------|
|                     ١٤٣٨ |