0

フィールドに最大数の X 空白 " " があるかどうかをチェックするチェック制約を追加したいと考えています。オラクルのウェブサイトでそれについて何も見つけることができませんでした。それが可能かどうか知っている人はいますか?おそらくPL/SQL関数を介してですか?

4

2 に答える 2

5

スペースの数を数えて単語を定義している場合は、おそらく次のようなことを行うことができます。

constraint check_ws_count check (length(regexp_replace(field,'[^ ]','')) <= 99)

ただし、これはダブルスペーシングなどを考慮していません。より堅牢になるように調整できるかもしれませんが、それは良い考えではないようです。


編集複数の間隔を使用regexp_countして考慮に入れる:

constraint check_ws_count check (regexp_count(field, '\s+') <= 99)
于 2012-10-26T15:44:04.903 に答える
2

おそらく、次のようなものがうまくいくはずです:

check (length(field) - length(replace(field, ' ', '')) <= 99)

regexp_このアプローチは、関数ファミリーを持たない Oracle 9i 以前のデータベースに行き詰まっている人にも有効です。

于 2012-10-26T15:43:17.220 に答える