在utl_mail.send内部传递电子邮件时出错(Oracle 11g-sql)06502-06512

时间:2019-12-22 01:22:49

标签: sql oracle oracle11g

我收到此错误消息:

Error at line 1
ORA-06502: PL/SQL: numeric or value error 
ORA-06512: in "SYS.UTL_MAIL", line 654
ORA-06512: in "SYS.UTL_MAIL", line 671
ORA-06512: in "APPS.PR_MAIL_ME", line 44
ORA-06512: in line 2

这是我的代码,我的光标:

  cursor email_detail is
  select email
    from
    (
       <the subquery>
      )
   where rn = 1
     and status in ('WARNING','ERROR','STAND BY'); 

然后,我想使用LOOP传递utl_mail.send函数内的每封电子邮件

begin

  for c in email_detail
  loop
    begin

      utl_mail.send(sender => 'send@mail.com',recipients => c.email ,subject => 'Concurrents' ,message => 'adasdas');
    end;  
  end loop;

end;

我已经尝试了很多次来解决这个问题,但是我失败了,您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在11g中,您需要在使用utl_mail软件包之前执行以下命令:

@rdbms/admin/utlmail.sql
@rdbms/admin/prvtmail.plb
grant execute on utl_mail to <your_user_or_public>

现在,重要的一步是,您需要将电子邮件服务器的地址和端口添加到“ smtp_out_server”初始化参数中。如果不这样做,当您尝试使用“ORA-06502: PL/SQL: numeric or value error”软件包时,将会收到UTL_MAIL错误。

有关smtp_out_server的更多详细信息,请参见此oracle文档。

干杯!