Номер Оракула на 18с против 19с - PullRequest
1 голос
/ 18 октября 2019

Требуется подтверждение для приведенного ниже поведения типа данных NUMBER в обеих версиях Oracle ( 18c против 19c ),

В 18c,

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

-output

0.00385621481339365

В 19c,

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

- output

0.003856214813393653

Почему происходит усечение последней цифры для 18c?

Это проблема с версией?

Плюс 18c, похоже, не может обрабатывать значения масштаба больше 17 *.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Это связано с проблемой настройки инструмента разработки Oracle / PLSQL. Пожалуйста, попробуйте с помощью приведенных ниже вариантов, чтобы решить те же

Инструменты -> Настройки -> Окно SQL -> Числовые поля to_char

0 голосов
/ 22 октября 2019

Это прихоть настроек клиента , а не базы данных. Например, я запустил все это в одной и той же базе данных

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

Клиентский инструмент выбирает точность показа

...