-1
我使用Oracle Apex 4.2和数据库11.g.我需要将从用户接收的值(l_requested_time)与存储在表列中的值(music_lookup.valid_time)进行比较。如果提供的值包含在表中,则交易应继续。如果提供的值不在表格中,那么交易应该被取消。我在将它放入Apex之前,先在SQL Developer中构建它。当我在SQL Developer中执行以下代码时,我收到一条错误消息:PLS-00405:在此上下文中不允许使用子查询。我只是不知道如何解决这个限制。PL/SQL在表中使用IN子句
Declare
l_requested_time varchar2(256);
Begin
l_requested_time := '10:00 AM';
If l_requested_time in (select valid_time from music_lookup)
Then dbms_output.put_line('The transaction is authorized');
Else dbms_output.put_line('The transaction is NOT authorized');
End if;
End;
有没有更好的方法来解决这个问题?
感谢您关注此事。
嗨BobC,谢谢你的回复。对此,我真的非常感激。这是一个很好的方法,并且工作正常。回答您的其他问题:1)查询不应该返回多行,因为基于Requested_Time和UserName字段的组合,我在music_lookup表上具有唯一键约束。组合键表示用户有权编辑任何带有包含当日时间的时间戳的记录。 2)l_requested_time字段是从Timestamp字段中提取的。在我将它移到Apex之前,我没有包含UserName,因为我使用的是SQLDeveloper。再次感谢。 – user3138025