Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не гарантируется, что функция не обновит БД / 2 сообщений из 2, страница 1 из 1
06.08.2020, 18:38
    #39987233
rectoferoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не гарантируется, что функция не обновит БД
Здравствуйте!
Есть у меня parallel_enable pipelined функция func1 в пакете package1 которая возвращает с помощью
select * from table(package1.func1('306,307'));
рекордсет на основании переданных ей в строке айдишников.
и нужно мне эту функцию слегка изменить и вставить в нее вызов процедуры "proc2" из mssql по линку (процедура эта просто читает у себя данные и возвращает в out параметрах).
я вставил этот вызов:
resultt:=proc2@link_gw4mssql(in_params,out_params);
а он мне при вызове это:
ORA-06571: Не гарантируется, что функция proc2 не обновит БД.
пробовал добавить в объявление пакета:
PRAGMA RESTRICT_REFERENCES (func1, WNDS);
после чего не компилится body с сообщением
Error(1587,1): PLS-00452: Subprogram 'func1' violates its associated pragma
Видел что можно еще что то вроде этого:
PRAGMA RESTRICT_REFERENCES (get_cards, WNDS, TRUST);
после этого все компилируется, но при вызове снова ORA-06571
как быть?
...
Рейтинг: 0 / 0
06.08.2020, 19:27
    #39987247
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не гарантируется, что функция не обновит БД
Попробуйте звать proc2@link_gw4mssql в автономной транзакции
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не гарантируется, что функция не обновит БД / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]