我想创建一个约束,它将检查PostalCode的格式,可以是A1A-1A1或11111。然后输入如下命令
的检查(REGEXP_LIKE (PostalCode, ' [a - z] [a - z] [a - z] - [a - z] [a - z] [a - z]"| |"[0 - 9][0 - 9][0 - 9][0 - 9][0 - 9]"))
但是这个命令不起作用。如何修改该命令?
我假设您的格式是AAA-AAA或111-111或11111。如果没有,则更改下面的表达式(它是自解释的)。
REGEXP_LIKE (PostalCode, '[A-Z0-9][A-Z0-9][A-Z0-9]-[A-Z0-9][A-Z0-9][A-Z0-9]')
or REGEXP_LIKE (PostalCode,'[0-9][0-9][0-9][0-9][0-9]')
注意:但是从这里,你也会得到有额外字符的代码,比如AAA-AAAAAA或11111111。要检查这些,您也需要使用length。
(REGEXP_LIKE (PostalCode, '[A-Z0-9][A-Z0-9][A-Z0-9]-[A-Z0-9][A-Z0-9][A-Z0-9]')
and length(PostalCode) =7)
or ( REGEXP_LIKE (PostalCode,'[0-9][0-9][0-9][0-9][0-9]')
and length(PostalCode) =5)