我想添加一个检查约束,检查字段是否具有最大数量的X空格“”。我在oracle网站上找不到任何关于它的信息。有谁知道这是否可能?也许通过PL / SQL函数?
答案 0 :(得分:5)
如果您通过计算空格数来定义单词,那么您可以执行以下操作:
constraint check_ws_count check (length(regexp_replace(field,'[^ ]','')) <= 99)
然而,这并没有考虑到双倍间距等。也许你可以调整它以使其更加强大,但它似乎不是一个好主意!
编辑使用regexp_count
并考虑多个间距:
constraint check_ws_count check (regexp_count(field, '\s+') <= 99)
答案 1 :(得分:2)
可能这样的事情应该可以解决问题:
check (length(field) - length(replace(field, ' ', '')) <= 99)
这种方法也适用于那些没有regexp_
系列函数的Oracle 9i或更旧数据库的人。