Ошибка в моем sql (varchar2)

У меня есть следующая ошибка во всех моих таблицах, где я использую varchar2

ошибка ORA-01438: значение больше указанной точности, разрешенной для этого столбца

хотя я использовал символы меньше указанной длины

введите здесь описание изображения

Примечание. Я использую oracle apex


person Rawan Al-Sager    schedule 02.04.2018    source источник
comment
Помогите нам помочь вам — пожалуйста, поделитесь своим определением таблицы и ошибочным оператором SQL.   -  person Mureinik    schedule 02.04.2018
comment
и когда я выбираю varchar2, я не могу вставить точность   -  person Rawan Al-Sager    schedule 02.04.2018
comment
Я вставил изображение   -  person Rawan Al-Sager    schedule 02.04.2018


Ответы (1)


Судя по скриншоту, ошибку вызывает именно DEP_ID, а не DEP_NAME. Кажется, вы неправильно определили этот столбец в таблице. Вот что вы сделали:

SQL> create table test (dep_id number(1, 10));

Table created.

SQL> insert into test (dep_id) values (1);
insert into test (dep_id) values (1)
                                  *
ERROR at line 1:
ORA-01438: value larger than specified precision allowed for this column


SQL> insert into test (dep_id) values (0.0000000001);

1 row created.

SQL>

Другими словами, вы устанавливаете точность на «1» (т. е. разрешаете только одну значащую цифру), а шкалу устанавливаете на «10» (что представляет «десятичные» цифры).

Ради вашего блага в этом случае установите DEP_ID NUMBER без точности и масштаба.

person Littlefoot    schedule 02.04.2018