CHECK约束字符串包含一定数量的数字以及某些数字。 (Oracle SQL)

时间:2018-04-26 15:10:26

标签: sql oracle

我有一个列number,我需要一个长度约束(比如说11位),并断言某些数字的存在。让我们说前四位需要是' 1234'并且在范围' 6-9'中排名第五。我使用varchar类型,所以我还需要断言数字。通过一些研究,我能够提出:

CHECK (REGEXP_LIKE(number, '^1234\d{6}$'))

通过这种方式,我可以检查数字位数(11),前4个起始数字和数字值。但是,我不能将需要在6到9之间的第五个数字放入这个表达式中。 提前致谢

1 个答案:

答案 0 :(得分:3)

试试这个。

CHECK (REGEXP_LIKE(number, '^1234[6-9]\d{6}$'))