【发布时间】:2021-02-12 19:02:33
【问题描述】:
我的任务是实现一个带有可变组码的表。有几个要求。
- 字符(5)
- 2 或 4 个大写字母加 1 位数值介于 1 和 4 之间的数字(例如,AA1、AABB1)
- 应禁止任何其他违反点 1 和 2 的输入
我唯一能想到的就是 regexp_like 但我的努力是徒劳的,例如
create table Test(
groupcode char(5) check(
regexp_like(groupcode, '^[A-Z]{2}[0-9]$', 'c')
)
);
INSERT INTO Test(groupcode) VALUES ('AA1');
我插入了这个,但它一直告诉我有一些违规行为,我不明白。
我指定^ 和$,因为我不希望出现'bbAA1' 或'AA1bb' 之类的内容。
我也对非正则表达式解决方案持开放态度。经过今天下午的所有工作,我开始怀疑自己的方法了。
【问题讨论】:
标签: sql regex oracle sqldatatypes check-constraints