【问题标题】:Oracle 10g - UTL_MAIL packageOracle 10g - UTL_MAIL 包
【发布时间】:2010-09-16 20:40:03
【问题描述】:

我在使用 Oracle 10g 中的 UTL_MAIL 包时遇到了一些问题,想知道是否有人有任何解决方案?

我以 SYSMAN 身份连接到我的数据库并加载以下两个脚本;

@C:\oracle\product\10.2.0\db_1\rdbms\admin\utlmail.sql

@C:\oracle\product\10.2.0\db_1\rdbms\admin\prvtmail.plb

我设置了 SMTP 服务器;

ALTER SYSTEM SET smtp_out_server='mymailserver.fake:25' SCOPE=BOTH;

我授予用户所需的权限;

在 utl_mail TO MYUSER 上执行;

但是,如果我连接到“MYTABLESPACE”(MYUSER 所在的位置),如果我引用 UTL_MAIL.SEND,则会收到以下错误;

PLS-00201:必须声明标识符“UTL_MAIL.SEND”

如果我在它前面加上 SYSMAN (SYSMAN.UTL_MAIL.SEND),它可以工作,但我不想这样做,因为包含此调用的这个过程不知道安装脚本的表空间。

有没有办法安装这些脚本,以便它们可以普遍访问,并且不需要 SYSMAN 前缀来执行?

干杯,

克里斯

【问题讨论】:

标签: oracle email


【解决方案1】:

我很确定公共同义词将是唯一的区别。

SELECT * FROM ALL_SYNONYMS WHERE OWNER = 'PUBLIC' and table_name LIKE 'UTL%'

将确认或否认

【讨论】:

    【解决方案2】:

    听起来你需要为包创建一个公共同义词..

    CREATE PUBLIC SYNONYM UTL_MAIL FOR SYSMAN.UTL_MAIL;
    

    【讨论】:

      【解决方案3】:

      尝试ALTER SYSTEM SET smtp_out_server='mymailserver.fake:25' SCOPE=BOTH; 作为您正在运行该过程的用户,而不是作为 sys。

      即。 连接到MYTABLESPACE as MYUSER 并运行alter session 希望很清楚

      【讨论】:

        【解决方案4】:

        以 sys 身份登录并运行脚本

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-25
          • 1970-01-01
          相关资源
          最近更新 更多