PL/SQL에 다소 익숙하며 작성한 커서를 사용하는 데 약간의 문제가 있습니다. 나는 특정 사람들에게 이메일을 보내는 절차를 쓰고있다. 여기에 관련 코드 :프로 시저 전체에서 커서 사용
sql stmt := ' -- All my sql is in here -- ';
open email_cursor for sql stmt;
fetch email_cursor into term, award, desc, id, name, xmdt;
.....
if v_id is not null then
email_adr := schema1.get_email_adr(v_id); --This is partly where problem is.
if v_opt_ltr = 'Y' then --a variable that decides if an email should be sent
UTL_MAIL.SEND (sender => email_from,
recipients => email_adr,
subject => v_email_subject,
mime_type => 'text/html',
message => email_body);
END IF;
END IF;
좋아, 내가이 프로그램을 실행할 때 오류 또는 아무것도 얻을 해달라고하지만 어떤 이유로 나는 그것이 실패 email_adr 변수의 기능을 실행할 때, 저에게 아무것도주지 나던, 그리고 차례로 이메일을 보내지 않을 것입니다.
또 다른 질문 (커서가 새로 도입 되었기 때문에) : "stu_email : = schema1.get_email_adr (v_id);"줄을 실행하면 커서의 v_id에 약 25 개의 레코드가 있어야합니다. 이것으로 25 개의 레코드가 모두 나올 것이고 "utl_mail.send"가 모든 수신자에게 이메일을 보낼 것인가?
UTL_MAIL.SEND에 대한 매개 변수의 값을 예상 했습니까? 하드 코드 된 매개 변수를 사용하여 UTL_MAIL이 포함 된 메일을 보내 보셨습니까? –
네, 가지고 있고 잘 작동합니다. 수신자를 포함한 모든 전자 메일 변수를 하드 코딩하면 정상적으로 작동합니다. 해당 변수 (v_id)를 사용하고 25 개의 레코드를 모두 가져올 수 있습니다. – Dan