如何在 oracle 中 select 数字并将数字从英语转换为阿拉伯语
how to select number and convert number from English to arabic in oracle
我有 table 和这样的数据
我需要 select 这个数据,但我需要它是这样的
如何将数字从英文转换为阿拉伯文
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
| NUMTOEASTERNARABIC(1438) |
|--------------------------|
| ١٤٣٨ |
我有 table 和这样的数据
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
| NUMTOEASTERNARABIC(1438) |
|--------------------------|
| ١٤٣٨ |