18c与19c上的Oracle编号问题

18c与19c上的Oracle编号问题,oracle,numbers,sqldatatypes,oracle18c,oracle19c,Oracle,Numbers,Sqldatatypes,Oracle18c,Oracle19c,需要确认以下两个Oracle版本上数字数据类型的行为(18c vs 19c) 在18c中 从dual中选择cast(0.003856214813393653)作为数字(20,18); --输出 0.00385621481339365 19世纪 从dual中选择cast(0.003856214813393653)作为数字(20,18); --输出 0.003856214813393653 为什么18c的最后一个数字会被截断 这是版本的问题吗 Plus 18c似乎无法处理超过17的缩放值。这

需要确认以下两个Oracle版本上数字数据类型的行为(18c vs 19c

在18c中

从dual中选择cast(0.003856214813393653)作为数字(20,18);
--输出

0.00385621481339365
19世纪

从dual中选择cast(0.003856214813393653)作为数字(20,18);
--输出

0.003856214813393653
为什么18c的最后一个数字会被截断

这是版本的问题吗


Plus 18c似乎无法处理超过17的缩放值。

这是客户机设置而不是数据库的一时兴起。例如,我在同一个数据库上运行了所有这些

SQL Plus
========
SQL> select cast(0.003856214813393653 as number(20,18)) from dual;

CAST(0.003856214813393653ASNUMBER(20,18))
-----------------------------------------
                               .003856215

SQL Developer
=============
select cast(0.003856214813393653 as number(20,18)) from dual;

0.003856214813393653

SQLcl
======
SQL> select cast(0.003856214813393653 as number(20,18)) from dual;

CAST(0.003856214813393653ASNUMBER(20,18))
-----------------------------------------
                             .00385621481

客户端工具决定显示的精度

这与Oracle/PLSQL开发人员工具设置问题有关。请尝试使用以下选项来解决相同问题

工具->首选项->SQL窗口->要添加字符的数字字段


无法在Oracle 18c上复制您的输出我也无法在我的18c XE实例上获得断言的输出。您确定这不是客户端显示问题吗?您使用哪个工具执行查询?