我正在使用 Oracle apex 并尝试使用自动电子邮件进行练习。理想情况下,场景将是这样的:用户可以通过他的愿望清单向朋友“推荐”游戏。用户通过复选框选择他们想要推荐的游戏,然后选择朋友和电子邮件内容。我为此准备的代码如下:
DECLARE
content VARCHAR2(4000) := :P4_EMAIL || 'Here are the game(s):';
game VARCHAR2(100);
i NUMBER := 1;
/*Declare the cursor and it's query */
cursor CURSOR IS
SELECT name
from gs_games
where game_id = APEX_APPLICATION.G_F01(i)
FOR UPDATE;
BEGIN
FOR i in 1..APEX_APPLICATION.G_F01.count
LOOP
OPEN cursor;
FETCH cursor INTO game;
CLOSE cursor;
END LOOP;
htmldb_mail.Send(p_to => :P4_FRIENDS,
p_from => 'gametracker@gametracker.com',
p_subj => 'Game recommendations from ' || :F56_USER_NAME,
p_body => content || ' ' || game);
END;
这仅部分有效。对于一个单一的选择,每个人都可以完美地工作,但是一旦用户选择了多个游戏,那么电子邮件只包含第一个选中的游戏的名称,而不是应该包含的每个游戏。我意识到这与我设置光标的方式有关,但我不完全确定如何在保持 for 循环处于活动状态的同时使用它。有没有人有任何想法?谢谢你。