Oracle Constraint仅限字母SQL REGEXP

时间:2016-04-18 18:30:50

标签: sql regex oracle

我已经将表格装满了数据,我试图添加一个约束,只允许将字母输入到我已命名为studentfname的属性中。我已经尝试了各种不同的REGEXP,但是在插入它们时没有出现错误似乎无法工作。

我不确定它是语法错误还是什么!

编辑:这是我尝试过的以及我得到的错误:

ALTER TABLE STUDENT
ADD CONSTRAINT
check_name
 CHECK(regexp_like(studentfname,'^[A-Za-z''-]+$'));

错误:

QL Error: ORA-02293: cannot validate (JEIGH7.CHECK_NAME) - check constraint violated
02293. 00000 - "cannot validate (%s.%s) - check constraint violated"
*Cause:    an alter table operation tried to validate a check constraint to
           populated table that had nocomplying values.
*Action:   Obvious

1 个答案:

答案 0 :(得分:1)

显然,您可以尝试运行以下查询以检查上述列中是否存在任何非整数数据,这会阻止您应用检查约束。从此查询获得输出后,尝试更新/删除该行,然后应用约束。希望这会有所帮助。

SELECT studentfname nm FROM STUDENT a
WHERE NOT regexp_like(a.nm,'^[A-Za-z''-]+$');