我正在尝试为变量分配多个字符串值。它可以是存储在变量中的3个值中的任何一个(不超过1但可以是3中的任何一个)。 我在存储过程中有以下CASE,如下所示: -
flag_one :=
CASE
WHEN flag_one = 'ACH' THEN 'ACHPayment_Confirmed'
**WHEN flag_one = 'SAMEDAY' THEN 'HIFV5_FTRINF' OR 'HIFV4' OR 'Payment_HIFV5_FTRINF'**
WHEN flag_one = 'LBX' THEN 'LOCKBOX_CONFIRM'
WHEN flag_one = 'ELBX' THEN 'eLockbox_Confirmed'
WHEN flag_one = 'EBPP' THEN 'Transactis_Confirmed'
WHEN flag_one = 'RDC' THEN 'RDC_Confirmed'
--ELSE NULL
END;
这样做的好方法是什么?收到的编译错误是PLS-00382:表达式类型错误。
答案 0 :(得分:0)
您可以使用类似
的内容random_val := DBMS_RANDOM.VALUE;
flag_one := CASE flag_one
WHEN 'ACH' THEN 'ACHPayment_Confirmed'
WHEN 'SAMEDAY' THEN
CASE
WHEN random_val BETWEEN 0 AND 0.3333333333
THEN 'HIFV5_FTRINF'
WHEN random_val BETWEEN 0.333333333 AND 0.6666666666
THEN 'HIFV4'
ELSE 'Payment_HIFV5_FTRINF'
END
WHEN 'LBX' THEN 'LOCKBOX_CONFIRM'
WHEN 'ELBX' THEN 'eLockbox_Confirmed'
WHEN 'EBPP' THEN 'Transactis_Confirmed'
WHEN 'RDC' THEN 'RDC_Confirmed'
--ELSE NULL
END;
祝你好运。