Oracle 10g - UTL_MAIL包

时间:2008-10-13 09:31:37

标签: oracle email

我对Oracle 10g中的UTL_MAIL包有点麻烦,并且想知道是否有人有任何解决方案?

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

@C:\ ORACLE \产品\ 10.2.0 \ DB_1 \ RDBMS \管理员\ utlmail.sql

@C:\ ORACLE \产品\ 10.2.0 \ DB_1 \ RDBMS \管理员\ prvtmail.plb

我设置了SMTP服务器;

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

我授予用户所需的权限;

GRANT执行ON utl_mail TO MYUSER;

但是如果我连接到“MYTABLESPACE”(MYUSER存在),如果我参考UTL_MAIL.SEND,我会收到以下错误;

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

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

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

干杯,

克里斯

4 个答案:

答案 0 :(得分:5)

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

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

将确认或拒绝

答案 1 :(得分:4)

听起来你需要为包创建一个PUBLIC SYNONYM ..

CREATE PUBLIC SYNONYM UTL_MAIL FOR SYSMAN.UTL_MAIL;

答案 2 :(得分:1)

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

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

答案 3 :(得分:-2)

以sys身份登录并运行脚本