Как вызвать процедуру пакета из ссылки на БД

#sql #oracle #dblink

#sql #Oracle #dblink

Вопрос:

У меня есть ссылка на 2 БД. По умолчанию используется один. В настоящее время у меня есть,

 CREATE OR REPLACE procedure SP_MySP(Params);
is
begin

   PackageName.Object (Params);
end;
/
  

Приведенная выше процедура отлично работает для пакета по умолчанию. Теперь мне нужно вызвать тот же объект по другой ссылке на БД. Я делаю,

 SELECT PackageName@MySecondDbLink.Object (Params) FROM DUAL
  

Теперь я получаю сообщение об ошибке,

 ORA-04054: database link XX does not exist
  

Комментарии:

1. Имя ссылки появляется после вызываемой вами процедуры — so SELECT PackageName.Object@MySecondDbLink(Params) должно сделать это за вас.

2. Проверьте документы: docs.oracle.com/cd/B19306_01/server.102/b14200 /. … «Используйте только символы ASCII для dblink. Многобайтовые символы не поддерживаются. Имя ссылки на базу данных не зависит от регистра и хранится в верхнем регистре символов ASCII. » Таким образом, у oracle нет возможности узнать, не является ли «Объект» в «MySecondDbLink.Object» частью ссылки на БД

3. @BobJarvis-Переустановите Monica Вы великолепны 🙂