我使用 Jaspersoft iReport 工具从 Oracle DB 中的表设计报告。我得到一个数字值,我想将其转换为文本。
例如,如果我得到的值是1652 ,我需要一个 Pl/SQL 函数将其转换为一千五百零二
有没有可用的功能?
我使用 Jaspersoft iReport 工具从 Oracle DB 中的表设计报告。我得到一个数字值,我想将其转换为文本。
例如,如果我得到的值是1652 ,我需要一个 Pl/SQL 函数将其转换为一千五百零二
有没有可用的功能?
您可以将数字转换为时间戳并返回以获取整数:
SQL> select to_char(to_timestamp(lpad( 1652 , 9, '0'), 'FF9' ), 'Ffsp' ) str
2 from dual;
STR
---------------------------------------------------------------------------
One Thousand Six Hundred Fifty-Two
SQL> select to_char(to_timestamp(lpad( 1502 , 9, '0'), 'FF9' ), 'Ffsp' ) str from dual;
STR
---------------------------------------------------------------------------
One Thousand Five Hundred Two
这将在一定程度上起作用(它将返回的字符串的大小是有限的)。否则你必须编写自己的函数来做到这一点。
你可以使用这个技巧:
DECLARE
ws_number NUMBER := 30;
ws_text VARCHAR2(60);
BEGIN
ws_text := to_char(to_date(ws_number,'j'), 'jsp');
END;
将j
数字转换为儒略日期并jsp
返回儒略日期的值。在此 Ask Tom 帖子中对其进行了更全面的描述