Oracle 10g - пакет UTL_MAIL - PullRequest
4 голосов
/ 13 октября 2008

У меня небольшие проблемы с пакетом UTL_MAIL в Oracle 10g, и мне было интересно, есть ли у кого-нибудь решения?

Я подключаюсь к своей БД как SYSMAN и загружаю следующие два скрипта:

@ C: \ оракул \ продукт \ 10.2.0 \ db_1 \ RDBMS \ админ \ utlmail.sql

@ C: \ оракул \ продукт \ 10.2.0 \ db_1 \ RDBMS \ админ \ prvtmail.plb

Я установил SMTP-сервер;

ALTER SYSTEM SET smtp_out_server = 'mymailserver.fake: 25' ОБЛАСТЬ ПРИМЕНЕНИЯ = ОБА;

Я даю пользователю необходимое разрешение;

GRANT выполнить ON utl_mail TO MYUSER;

Но тогда, если я подключаюсь к "MYTABLESPACE" (где существует MYUSER), я получаю следующую ошибку, если сделаю ссылку на UTL_MAIL.SEND;

PLS-00201: идентификатор 'UTL_MAIL.SEND' должен быть объявлен

Если я добавлю его к SYSMAN (SYSMAN.UTL_MAIL.SEND), это сработает, но я не хочу этого делать, поскольку эта процедура, содержащая этот вызов, не знает табличного пространства, в котором установлены сценарии.

Есть ли способ установить эти сценарии так, чтобы они были доступны повсеместно, и не требовал выполнения префикса SYSMAN?

Приветствия

Chris

Ответы [ 4 ]

5 голосов
/ 13 октября 2008

Я почти уверен, что общедоступные синонимы будут единственным отличием.

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

подтвердит или отклонит

4 голосов
/ 13 октября 2008

Похоже, вам нужно создать ПУБЛИЧНЫЙ СИНОНИМ для пакета ..

CREATE PUBLIC SYNONYM UTL_MAIL FOR SYSMAN.UTL_MAIL;
1 голос
/ 13 ноября 2009

попробуйте ALTER SYSTEM SET smtp_out_server='mymailserver.fake:25' SCOPE=BOTH; как пользователь, которого вы запускаете, а не как sys.

есть. подключиться к MYTABLESPACE as MYUSER и запустить сеанс изменения Надеюсь ясно

0 голосов
/ 30 сентября 2009

войти в систему как sys и запустить скрипты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...