Oracle:大数字在连接时获得转换的科学记数法(40位数)

问题描述 投票:1回答:1

Oracle在串联时将Number转换为字符串或将其移至to_char。

例:

select value from tab;
value
9076725748515642018090620180906173606980000000000000000000000000000000000000000

select RPAD(value,LENGTH(value)+1,chr(135)) from tab;

RPAD(value,LENGTH(value)+1,chr(135))
9.0767257485156420180906201809061736E+78‡

预期的结果

9076725748515642018090620180906173606980000000000000000000000000000000000000000‡
sql oracle concatenation
1个回答
0
投票

也许PL / SQL可以帮到你。你可以尝试下面的脚本。

CREATE OR REPLACE FUNCTION test123 (p_number NUMBER) return VARCHAR2
IS
    v_no VARCHAR2(100);
BEGIN
    EXECUTE IMMEDIATE 
     'select '''||p_number||'''||CHR(135) '||
      ' from dual'
      INTO v_no;
    RETURN v_no;
END;
/

SELECT TEST123(9076725748515642018090620180906173606980000000000000000000000000000000000000000) 
FROM DUAL;

OUTPUT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
--------------------------------------------------------------------------------
9076725748515642018090620180906173606980000000000000000000000000000000000000000‡ 
© www.soinside.com 2019 - 2024. All rights reserved.