我的SQL(varchar2)出错

时间:2018-04-02 06:50:51

标签: sql oracle oracle-apex varchar2

我在所有使用varchar2

的表中都出现以下错误
  

错误ORA-01438:大于此列允许的指定精度的值

虽然我使用的字符少于指定的长度

enter image description here

注意:我正在使用oracle apex

1 个答案:

答案 0 :(得分: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,没有精确度或比例。