sql 在PL / SQL中拼写数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 在PL / SQL中拼写数字相关的知识,希望对你有一定的参考价值。

CREATE OR REPLACE FUNCTION spell_number(p_number IN NUMBER)
  RETURN VARCHAR2 AS
  TYPE myarray IS TABLE OF VARCHAR2(255);

  l_str myarray := myarray(
    '',
    ' thousand ',
    ' million ',
    ' billion ',
    ' trillion ',
    ' quadrillion ',
    ' quintillion ',
    ' sextillion ',
    ' septillion ',
    ' octillion ',
    ' nonillion ',
    ' decillion ',
    ' undecillion ',
    ' duodecillion '
  );
  l_num VARCHAR2(50) DEFAULT trunc(p_number);
  l_return VARCHAR2(4000);
BEGIN
  FOR i IN 1 .. l_str.count LOOP
    EXIT WHEN l_num IS NULL;
    IF (substr(l_num, length(l_num) - 2, 3) <> 0) THEN
      l_return :=
        to_char(to_date(substr(l_num, length(l_num) - 2, 3), 'J'), 'Jsp') || l_str(i) || l_return;
    END IF;
    l_num := substr(l_num, 1, length(l_num) - 3);
  END LOOP;
  RETURN l_return;
END;

以上是关于sql 在PL / SQL中拼写数字的主要内容,如果未能解决你的问题,请参考以下文章

在 PL/SQL 中动态声明变量

pl/sql 从数字到字符串的转换

获取 ORA-06502:PL/SQL:数字或值错误:SQL 触发器中的字符到数字转换错误

如何在 PL-SQL 中舍入数字?

ORA-06502: PL/SQL: 数字或值错误: 数字精度太大

ORA-06502 PL/SQL:数字或值错误:字符到数字的转换错误;