1
我想写一个约束模式只允许以下:如下字符串:SQL DB2 CHECK约束PATTERN
- “+55”
- 一个空格
- 一些在120和150之间
- 一个空白区域
- 7-9位数字。
我尝试了很多的方法,但它没有一个工作,我希望的方式,结束了做这样的事情:
ALTER TABLE KUNDENKONTAKTDATEN
ADD CONSTRAINT
VariableA_Check CHECK (
VariableA Like '+55 1[2-4][0-9] [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Or VariableA Like '+55 1[2-4][0-9] [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Or VariableA Like '+55 1[2-4][0-9] [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Or VariableA Like '+55 150 [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Or VariableA Like '+55 150 [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Or VariableA Like '+55 150 [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
不是真的漂亮,但希望它的工作。有什么建议么? 谢谢!
8-10位数字不是7-9,我的错误! – Bermie
Db2 11.1允许正则表达式 - 如果您在Linux,Unix或Windows上,这将解决您的问题。退房regexp_like - https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0061494.html – MichaelTiefenbacher
谢谢 - 但我是仍然想知道为什么上述解决方案不起作用。 – Bermie