我无法获得AAA和ZZZ之间的代码,这就是我的尝试:
ALTER TABLE AIRPORT
ADD CONSTRAINT CORRECTCODE
CHECK (Code BETWEEN 'AAA' AND 'ZZZ' AND LENGTH(Code) = 3) ENABLE VALIDATE;
它接受我想要的值,但它也接受包含AB6等数字的值。我做错了什么?
答案 0 :(得分:2)
您可以使用regexp_like
。这将检查3个字符是否为大写。
CHECK(regexp_like(Code,'^[A-Z]{3}$'))
如果应支持大写和小写混合字符,请使用不区分大小写的标记i
作为第三个参数。
CHECK(regexp_like(Code,'^[A-Z]{3}$','i'))
答案 1 :(得分:-1)
听起来你只是在寻找任何三个字母的大写代码。如果这是真的,最简单的方法就是使用正则表达式,比如;
CHECK (REGEXP_LIKE (Code, '[A-Z]{3}'))