我以SYSMAN身份连接到我的数据库并加载以下两个脚本;
@C:\ ORACLE \产品\ 10.2.0 \ DB_1 \ RDBMS \ ADMIN \ utlmail.sql
@C:\ ORACLE \产品\ 10.2.0 \ DB_1 \ RDBMS \ ADMIN \ 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前缀?
发布于 2018-06-26 16:45:33
公共同义词是唯一的区别。
SELECT * FROM ALL_SYNONYMS WHERE OWNER = 'PUBLIC' and table_name LIKE 'UTL%'
发布于 2018-06-26 17:01:36
你需要为这个包创建一个公共的同义词。
CREATE PUBLIC SYNONYM UTL_MAIL FOR SYSMAN.UTL_MAIL;
https://stackoverflow.com/questions/-100000353
复制相似问题