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

Check length constraint is not working in Oracle11g sqlplus

我一直在尝试设置长度约束,这样它就不会接受长度大于或小于 5 的字符串

创建Table 语句:
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 


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

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

char(10) 列的长度始终为 10。不管您的插入语句如何。这就是您收到错误的原因。