我面临一个奇怪的问题
我正在尝试将一些数字转换为“单词”,只需这样做:
TO_CHAR(TO_TIMESTAMP(LPAD( nvl(trunc(99999999),0) , 9, '0'), 'FF9'),'FFSP') AS amt_in_words
效果很好,输出是
“九千九百万九百九十九千九百九十九”
但是当我们尝试输入像 99999998 这样的数字时会发生什么?
TO_CHAR(TO_TIMESTAMP(LPAD( nvl(trunc(99999998),0) , 9, '0'), 'FF9'),'FFSP') AS amt_in_words
它抛出错误“ORA-01877:字符串对于内部缓冲区来说太长”
好吧,这是一个较小的数字,它应该可以工作,但事实并非如此
我的理论是:它失败了,因为结果文本的长度是79个字符,并且由于某种原因失败了
建议1:使用强制转换(EXPR as VARCHAR(100) )
但它给出了同样的错误
有任何想法吗?
澄清:
不幸的是,我正在研究 Oracle Fusion BI buplisher,似乎我不能使用任何 Pl/sql 过程,只能使用普通的选择查询