вторник, 5 октября 2010 г.

Число прописью

Почему-то так получается, что в последнее время я всё больше и больше занимаюсь Oracle, нежели Delphi.

Сегодня публикую функцию, которая форматирует число в строку прописью (словами) на английском языке. Особо примечательно то, что для этого используется встроенная в Oracle функция to_char, а не массивы слов.


За основу примера взят этот топик.

function number_in_words_en(number_ in integer) return varchar2 is
  result varchar2(1000);
begin
  -- пример взят отсюда: http://www.sqlsnippets.com/en/topic-12355.html
  if abs(number_) > 999999999 then
    raise_application_error(-20100, 'Number must be between -999999999 and 999999999');
  end if;

  result := replace(lower(to_char(to_timestamp(lpad(abs(number_), 9, '0'), 'FF9'), 'FFSP')), '  ', ' ');   
  
  if sign(number_) < 0 then
    result := 'negative '||result;
  end if;

  return result;
end;

 

А здесь я предлагаю другой вариант реализации подобной функции + форматирование на русском языке

0 коммент.:

Отправить комментарий

.

.