【发布时间】:2014-06-16 17:45:56
【问题描述】:
我正在尝试创建一个具有名为 m_reaplicacao 的参数的过程。此参数接收值“S”表示“是”,“N”表示“否”,“T”表示所有记录。
当参数为 Yes 时,我应该返回值为 9 的记录。
当参数为 No 时,我应该返回与 9 不同的记录。最后,当值为 All 时,我应该返回表中的所有记录。
通过下面的代码,Oracle 说:
PROCEDURE MYDB.CONTAS_A_PAGAR_SPS 的编译错误
错误:PL/SQL:ORA-00905:缺少关键字
线路:84
文本:ta.id_1a_cbr = 9;
select * from proposta ta
where
ta.estado = 'RJ'
and case
when m_reaplicacao = 'S' then
ta.id_1a_cbr = 9;
when m_reaplicacao = 'N' then
ta.id_1a_cbr <> 9
else null
end case;
我看了很多帖子,但我没有解决这个。 有人可以帮帮我吗?
【问题讨论】:
-
使用
END而不是END CASE。您可能需要将m_reaplicacao =移到案例陈述之外。 -
哎呀,这应该是
ta.id_1a_cbr在 case 语句之外。