在 Oracle BI Publisher 中将数字转换为单词 [英] Convert Number into Words in Oracle BI Publisher

查看:33
本文介绍了在 Oracle BI Publisher 中将数字转换为单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个要求,我需要在 rtf 中将总发票金额显示为文字,我试过了

I have a requirement that I need to show the Total Amount of Invoice into words in rtf , I tried

例如:

我有价值 74,448.50,我需要以这种方式显示价值:七四千四百四十八和汉拿五百

I have value 74,448.50 and i need to show the value in this way : SEVENTY-FOUR THOUSAND FOUR HUNDRED FORTY-EIGHT AND Halla FIVE HUNDRED

推荐答案

您可以创建一个函数来处理它

Here's a function you can create to take care of it

SQL> create or replace
  2  function spell_number( p_number in number )
  3  return varchar2
  4  as
  5   type myArray is table of varchar2(255);
  6   l_str myArray := myArray( '',
  7     ' thousand ', ' million ',
  8     ' billion ', ' trillion ',
  9     ' quadrillion ', ' quintillion ',
  10    ' sextillion ', ' septillion ',
  11    ' octillion ', ' nonillion ',
  12    ' decillion ', ' undecillion ',
  13    ' duodecillion ' );
  14  
  15   l_num varchar2(50) default trunc( p_number );
  16   l_return varchar2(4000);
  17  begin
  18   for i in 1 .. l_str.count
  19   loop
  20   exit when l_num is null;
  21 
  22   if ( substr(l_num, length(l_num)-2, 3) <> 0 )
  23   then
  24   l_return := to_char(
  25   to_date(
  26   substr(l_num, length(l_num)-2, 3),
  27   'J' ),
  28   'Jsp' ) || l_str(i) || l_return;
  29   end if;
  30   l_num := substr( l_num, 1, length(l_num)-3 );
  31  end loop;
  32 
  33  return l_return;
  34 end;
  35 /

Function created.

SQL> select
  2    spell_number( 12345678901234567890123456789012345678 )
  3  from dual;

SPELL_NUMBER(1234567890123456789012345678901234567
--------------------------------------------------
Twelve undecillion Three Hundred Forty-Five decill
ion Six Hundred Seventy-Eight nonillion Nine Hundr
ed One octillion Two Hundred Thirty-Four septillio
n Five Hundred Sixty-Seven sextillion Eight Hundre
d Ninety quintillion One Hundred Twenty-Three quad
rillion Four Hundred Fifty-Six trillion Seven Hund
red Eighty-Nine billion Twelve million Three Hundr
ed Forty-Five thousand Six Hundred Seventy-Eight

这篇关于在 Oracle BI Publisher 中将数字转换为单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆