テーブル内に制約を作成する必要があります。私は文字(A ... Z)とかっこ、アンパサンド、パイプとスペース( '('、 ')'、 '&'、 '|'、 '')だけのフィールドが必要です。Oracleがregexp_likeを使用して制約する
私は次のようにしようとしたが、それは動作しません:
ALTER TABLE SCPOMGR.U_CLUSTER ADD
CONSTRAINT U_CLUSTER_CHK_EQUATION
CHECK (regexp_like (equation, '[A-z]|[chr(124)]|[chr(38)]|[chr(40)]|[chr(41)]|[chr(32)]'))
ENABLE
VALIDATE
ありがとう、それは動作します! 2つの結果の文字(AB、AC、BD、...)と2つのシンボル(&|、&&、...)を避けるためにreg_expを使用することも可能ですか? 私は文字と記号がほしいだけです。A&B | C&(D | E) – Gianluca
'^ [()&| )](?:[A-Za-z] [()&|))] * [A-Za-z]?しかし、空の文字列にもマッチすることに注意してください。あなたの要件は何ですか?あなたは手紙や記号で始めたり終わったりする必要がありますか? –
それは動作するはずです、私はテストします。スコープは、ユーザーが擬似SQL条件(&のANDおよび|のOR)を記述する必要があるフィールドを作成することです。ここで、A、B、C、...は異なる関連表に書かれた条件です – Gianluca