[sql] «ORA-01438: значение, превышающее указанную точность, разрешенную для этого столбца» при вставке 3



Answers

NUMBER (precision, scale) означает precision количество полных цифр, из которых цифры scale соответствуют десятичной точке.

NUMBER(2,2) другими словами, означает число с двумя цифрами, оба из которых являются десятичными. Вы можете использовать NUMBER(4,2) чтобы получить 4 цифры, из которых 2 являются десятичными знаками. В настоящее время вы можете просто вставлять значения с нулевой целой частью.

Дополнительная информация в документах Oracle .

Question

Я использую эту ошибку при попытке вставить любое число, кроме 0, в поле с форматом NUMBER (2,2).

UPDATE
    PROG_OWN.PROG_TPORCENTAJE_MERMA
SET
    PCT_MERMA = 3
WHERE
    IDN_PORCENTAJE_MERMA = 1

[Код ошибки: 1438, состояние SQL: 22003] ORA-01438: значение, превышающее указанную точность, разрешено для этого столбца

COLUMN_NAME DATA_TYPE   TYPE_NAME   COLUMN_SIZE   BUFFER_LENGTH   DECIMAL_DIGITS
PCT_MERMA   3           NUMBER      2             0               2

Это также случается, если я пытаюсь использовать десятичные числа.

Любая идея почему?




Related



Tags

sql sql   oracle