Oracle - 检查约束最大x个字数

时间:2012-10-26 15:25:53

标签: oracle constraints check-constraints

我想添加一个检查约束,检查字段是否具有最大数量的X空格“”。我在oracle网站上找不到任何关于它的信息。有谁知道这是否可能?也许通过PL / SQL函数?

2 个答案:

答案 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或更旧数据库的人。