-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