Настройка на схема на Oracle 11g R2 :
CREATE TABLE numbers ( value ) ASSELECT 0 FROM DUAL UNION ALLSELECT 123456 FROM DUAL UNION ALLSELECT 12345678 FROM DUAL UNION ALLSELECT 1234567890123 FROM DUAL UNION ALLSELECT 123456789012345 FROM DUAL UNION ALLSELECT 900000000000000 FROM DUAL UNION ALLSELECT 700000001200000 FROM DUAL UNION ALLSELECT 543000000000000 FROM ДВОЙНО;
Заявка 1 :
WITH rsqfc ( оригинал, стойност, суфикс, резултат, lvl, mxlvl ) AS ( SELECT стойност, TRUNC( стойност / 10000000 ), CAST( 'CRORE ' AS VARCHAR2(4000) ), CAST( RTRIM( CASE WHEN MOD( TRUNC(стойност / 100000), 100)> 0 THEN TO_CHAR(TO_DATE( MOD(TRUNC(стойност / 100000), 100), 'J'), 'JSP') || 'LAKH' END || CASE WHEN value =0 THEN 'ZERO' WHEN MOD( value, 100000 )> 0 THEN TO_CHAR( TO_DATE( MOD( value, 100000 ), 'J' ), 'JSP' ) || ' ' END ) AS VARCHAR2(4000) ), 1, CEIL( LENGTH( ABS(стойност)) / 7) FROM numbersUNION ALL SELECT оригинал, TRU NC(стойност / 10000000), 'CRORE' || суфикс, RTRIM( CASE WHEN MOD( TRUNC(стойност / 100000), 100)> 0 THEN TO_CHAR(TO_DATE( MOD(TRUNC(стойност / 100000), 100), 'J'), 'JSP') || 'LAKH' || суфикс END || CASE WHEN MOD(стойност, 100000)> 0 THEN TO_CHAR(TO_DATE(MOD(стойност, 100000), 'J'), 'JSP') || ' ' || суфикс END || резултат), lvl + 1, mxlvl FROM rsqfc WHERE lvl
<предварителен код>| ОРИГИНАЛ | РЕЗУЛТАТ ||-----------------|---------------------------- -------------------------------------------------- -------------------------------------------------- ------------------|| 0 | НУЛА || 123456 | ЕДИН ЛАКХ ДВАДЕСЕТ И ТРИ ХИЛЯДИ ЧЕТИРИСТОТИН ПЕТДЕСЕТ И ШЕСТ || 12345678 | ЕДНА КРОР ДВАДЕСЕТ И ТРИ ЛАКХ ЧЕТИРИДЕСЕТ И ПЕТ ХИЛЯДИ ШЕСТОТИН СЕДЕМДЕСЕТ И ОСЕМ || 1234567890123 | ЕДИН ЛАКХ КРОР ДВАДЕСЕТ И ТРИ ХИЛЯДИ ЧЕТИРИСТОТИН ПЕТДЕСЕТ И ШЕСТ КРОР СЕДЕМДЕСЕТ И ОСЕМ ЛАКХ ДЕВЕТДЕСЕТ ХИЛЯДИ СТО ДВАДЕСЕТ И ТРИ || 123456789012345 | ЕДНА КРОР КРОР ДВАДЕСЕТ И ТРИ КРОР КРОР ЧЕТИРИДЕСЕТ И ПЕТ ХИЛЯДИ ШЕСТОТИН СЕДЕМДЕСЕТ И ОСЕМ КРОР ДЕВЕТДЕСЕТ ЛАКХ ДВАНАДЕСЕТ ХИЛЯДИ ТРИСТА ЧЕТИРИДЕСЕТ И ПЕТ || 90000000000000 | ДЕВЕТ КРОР КРОР || 700000001200000 | СЕДЕМ КРОР КРОР ДВАНАЕСТ ЛАХ || 543000000000000 | ПЕТ КРОР КРОР ЧЕТИРИДЕСЕТ И ТРИ ЛАКС КРОР |