Преобразование неявной точности базы данных Oracle во время арифметики чисел - PullRequest
0 голосов
/ 31 августа 2018

Попытка найти документацию, которая подробно описывает, что происходит, когда я выполняю арифметику с числами различной точности:

например. Число (5,2) + Число (6,3) = Число (?,?)

Поиск правил, которые определяют это преобразование для сложения, вычитания, умножения и деления.

Изучил документацию Oracle, но смог найти информацию только о неявном преобразовании из Float / Double / Char в Number, а не между числами различной точности.

1 Ответ

0 голосов
/ 31 августа 2018

Тип данных будет NUMBER:

CREATE TABLE t
AS
SELECT CAST(1 AS Number(5,2)) + CAST(1 AS Number(6,3)) AS r 
FROM dual;

Проверка метаданных:

SELECT table_name, column_name, data_type, data_precision, data_scale
FROM ALL_TAB_COLS
WHERE TABLE_NAME = 'T';

┌─────────────┬──────────────┬────────────┬─────────────────┬────────────┐
│ TABLE_NAME  │ COLUMN_NAME  │ DATA_TYPE  │ DATA_PRECISION  │ DATA_SCALE │
├─────────────┼──────────────┼────────────┼─────────────────┼────────────┤
│ T           │ R            │ NUMBER     │                 │            │
└─────────────┴──────────────┴────────────┴─────────────────┴────────────┘

Демоверсия DBFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...