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

bic*_*cle 0 oracle constraints check-constraints

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

Xop*_*ter 5

如果您通过计算空格数来定义单词,那么您可能会执行以下操作:

constraint check_ws_count check (length(regexp_replace(field,'[^ ]','')) <= 99)
Run Code Online (Sandbox Code Playgroud)

但是,这并没有考虑到双倍间距等.也许你可以调整它以使其更加强大,但它似乎不是一个好主意!


编辑使用regexp_count并考虑多个间距:

constraint check_ws_count check (regexp_count(field, '\s+') <= 99)
Run Code Online (Sandbox Code Playgroud)

  • 使用`regexp_count`会更简单. (2认同)