【问题标题】:Error while passing email inside utl_mail.send (Oracle 11g - sql) 06502 - 06512在 utl_mail.send 中传递电子邮件时出错 (Oracle 11g - sql) 06502 - 06512
【发布时间】:2019-12-22 01:22:49
【问题描述】:

我收到此错误消息:

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'); 

然后,我想使用循环传递 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;

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

【问题讨论】:

  • 您需要编辑您的问题并发布minimal reproducible example 以及表格定义和示例表格数据。
  • 嘿伙计,你好吗?我正在使用一个名为 utl_mail.send 的标准 Oracle 函数,但我不明白如何传递数组:(

标签: sql oracle oracle11g


【解决方案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”初始化参数中。如果不这样做,当您尝试使用 UTL_MAIL 包时,您将收到 “ORA-06502: PL/SQL: numeric or value error” 错误。

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

干杯!!

【讨论】:

  • 嘿伙计,谢谢你的回复!如果我自己使用这个功能: utl_mail.send(sender => 'send@mail.com',recipients => 'myemail@mail.com' ,subject => 'Concurrents' ,message => 'adasdas');邮件发送正确。当我使用光标和循环功能时出现问题,这就是显示错误的地方。我的代码写得好吗?
  • 您的代码是正确的,但是当您说它在没有光标的情况下可以正常工作时,它是否来自您遇到光标错误的同一数据库?您的 smtp 服务器和数据库连接是否正常工作?
  • 我的 'c.email' 在 utl_mail.send 里面对你有什么意义吗?我的光标检索了几行,我想把每一行中的每一封电子邮件在“收件人”字段内。你明白吗?是的,我使用的是本地数据库,Oracle 11g 数据库,如果我使用函数 utl_mail.send(sender => 'send@mail.com',recipients => 'myemail@mail.com' ,subject => 'Concurrents ' ,message => 'adasdas') 然后点击执行,邮件就发送出去了。
  • 问题是我在游标和循环中创建了一个过程,由于某种原因它不能以这种方式工作。你需要整个代码吗?我很迷茫:(
  • 老哥,邮件服务器的地址和端口怎么设置为“smtp_out_server”?
猜你喜欢
  • 2019-10-11
  • 2015-06-11
  • 2020-03-10
  • 1970-01-01
  • 2022-10-25
  • 2016-02-27
  • 2019-04-10
  • 2017-07-29
  • 1970-01-01
相关资源
最近更新 更多