#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 Вы великолепны 🙂