无效的数字SQL 01722

时间:2016-04-08 20:35:45

标签: sql oracle

我创建了这个表:

create table user_info(
ID number(3) primary key,
employee_id number(6),
login varchar2(8) not null,
password varchar2(16) not null, check (password>5),
creation_date date default sysdate,
constraint empid_fk foreign key(employee_id) references employees(employee_id)
)

当我想插入某些值时,

insert into user_info values(123,123123,'login','password','08-04-2016');

我收到此错误:

01722. 00000 -  "invalid number"
*Cause:    
*Action:

有人可以解释插入查询中的错误吗?

1 个答案:

答案 0 :(得分:2)

  

检查(密码> 5)

不会在那里工作。您的密码是varchar2,而不是数字。您无法检查其值是否高于5,因为它不是数字。

如果您要检查其中的字符数,可以使用:

  

密码varchar2(16)not null CHECK(LENGTH(密码)> 5)