oracle:将varchar2限制为12以获取电话号码

时间:2015-09-07 18:57:14

标签: oracle constraints ddl varchar2

我试图强加一个约束来将电话号码的长度修改为12,但代码失败了:

create table customer (
rollcall number CONSTRAINT rc_pk PRIMARY KEY,
fname varchar(2) not NULL,
lname varchar(2)  not NULL,
phone varchar2(13) check (length(phone))=12 
);

1 个答案:

答案 0 :(得分:2)

只需将最大长度定义为12 - 这将更容易:

create table customer (
    rollcall number CONSTRAINT rc_pk PRIMARY KEY,
    fname varchar(2) not NULL,
    lname varchar(2)  not NULL,
    phone varchar2(12)
);

编辑:
既然问题已被重新解释为字段的长度应该正好是12个字符,那么事实上,你确实需要检查约束。原始片段中的问题是关闭括号的错位。以下代码段显示正确的展示位置,整个条件包含在check子句的括号中:

create table customer (
    rollcall number CONSTRAINT rc_pk PRIMARY KEY,
    fname varchar(2) not NULL,
    lname varchar(2)  not NULL,
    phone varchar2(12) check (length(phone) = 12) -- here
);