次のシナリオがあります。
CREATE OR REPLACE PROCEDURE GETINBOX
(
inHasAttachments IN int
)
AS
BEGIN
SELECT M.MailId,
M.SenderId,
E.Emp_Name As "Sender",
MI.RecipientId,
M.Subject
FROM MAIL M INNER JOIN MAILINBOX MI ON M.MailId = MI.MailId
WHERE MI.RecipientId = '547' AND
M.NotificationSelected = 'Y'
IF inHasAttachments = '1' THEN
AND M.Attachments = 'Y'
END IF;
END GETINBOX;
パラメータの値に基づいて where 句に条件を追加することは可能ですか?
WHERE MI.RecipientId = '547' AND
M.NotificationSelected = 'Y'
IF inHasAttachments = '1' THEN
AND M.Attachments = 'Y'
END IF;
明らかにこれは許可されていませんが、PL/SQLで何らかの方法でこれを行うことは可能ですか? それを行う 1 つの方法は、クエリを複製し、パラメーターの値に基づいて別のクエリを実行することですが、コードを複製したくありません。