检查长度约束在Oracle11g sqlplus中不起作用

时间:2019-02-04 21:41:54

标签: sql oracle11g constraints string-length

我一直在尝试设置长度约束,以便它不会采用长度大于或小于5的字符串

创建表语句:
create table exp(id char(10),name varchar(50));

添加约束语句:
alter table exp add constraint exp1 check(length(id)=5);

插入声明:
insert into exp(id,name) values('10001','Abhi');

但是只要我尝试插入上面写的数据,它就会显示

insert into exp(id,name) values('10001','Abhi')
*
ERROR at line 1:
ORA-02290: check constraint (VIT.EXP1) violated 


1 个答案:

答案 0 :(得分:3)

将char(10)更改为varchar2(10):

create table exp(id varchar2(10),name varchar(50)); 

char(10)列的长度始终为10。不管您的插入语句如何。这就是为什么您会得到错误。