私はOracleapexを使用しており、自動メールで練習しようとしています。理想的には、これがシナリオの流れです。ユーザーは、ウィッシュリストを介して友達にゲームを「推奨」できます。ユーザーは、チェックボックスを使用して推奨するゲームを選択し、次に友達と電子メールのコンテンツを選択します。このために私が用意しているコードは次のとおりです。
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;
これは部分的にしか機能しません。1回の選択で全員が完璧に機能しますが、ユーザーが複数のゲームを選択すると、メールには、すべてのゲームではなく、チェックオフされた最初のゲームの名前のみが含まれます。これは、カーソルを設定する方法に関係していることはわかっていますが、forループをアクティブにしたまま、どのように使用できるかは完全にはわかりません。誰かアイデアはありますか?ありがとうございました。