Преобразование JSP сделает это за вас;вам не нужно извлекать первую цифру или вводить «сотню» текста самостоятельно:
IF v_length <= 3 THEN
v_words := TO_CHAR(TO_DATE(NUM,'J'),'JSP');
END IF;
Если вы передадите 101, результатом будет ONE HUNDRED ONE
.И поскольку я изменил = 3
на <= 3
, он будет работать для любого 1, 2 или 3-значного значения, поэтому передача 11 возвращает ELEVEN
.
Для более длинных значений вы, возможно, ищете что-то вроде этого , которое разбивает число на группы и преобразует каждую группу в слова плюс соответствующий масштаб (например, «миллион»).Если вы хотите нестандартную группировку, тогда это немного сложнее, но есть недавний пример для lakh здесь .