创建 Check 约束 Oracle

Create Check constraint Oracle

我正在尝试创建一个在两列之间强制执行规则的检查约束,但出现此错误:

ORA-00920: invalid relational operator.

我看不出我的语句中哪个关系运算符有误。有什么帮助吗?

alter table "TRANSACTION" add constraint "CHECK_TRANSACTIONREFERENCE" check 
    ("REFERENCE" case when TRANSACTION_MEAN=2 then 
          (case when 'Reference' is not null then 1 else 0 end) 
    else 
          1 
    end = 1)

您要执行的业务规则似乎是

REFERENCE must be populated if TRANSACTION_MEAN equals 2

那为什么不直接编码呢?

alter table "TRANSACTION" 
    add constraint "CHECK_TRANSACTIONREFERENCE" 
    check (
             ( TRANSACTION_MEAN = 2 and Reference is not null)
       or TRANSACTION_MEAN != 2)
/