CftClub.ru
Клуб специалистов ЦФТ-Банк

В 2L ::[PR_CRED].[L].GetAmount и GetSumDebt показывают 0

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
widla
Участник со стажем


Вступление в Клуб: 22.01.2018
СообщениеПт Апр 18, 2025 15:51   В 2L ::[PR_CRED].[L].GetAmount и GetSumDebt показывают 0 Ответить с цитатой
Полезность: Нет оценки
Доброго времени суток!
Возможно кто-то уже сталкивался. Возникла проблема, в 3L функции ::[PR_CRED].[L].GetAmount и GetSumDebt показывают правильные значения в представлениях, однако в 2L эти же функции показывают по нулям. Пробовал в девелопере делать аналогичный вызов этих функций, с rtl.open всё штатно отрабатывает, убираю rtl.open - также нулевые значения. Насколько я знаю в Навигаторе сессия и так регистрируется и там выполняется что-то типа rtl.open, но почему тогда в представлении нули?

UPD. Ответ найден! Проблема в обращении к библиотеке ::[PR_CRED].[LIB_CACHE_PARAM] из функции GetSumDebt: в SQL-контексте нельзя обращаться к операциям с прагмой сброса пакетов сессии SERIALLY_REUSABLE, именно такой и является библиотека [LIB_CACHE_PARAM]. Таким образом, в локале были созданы функции-обёртки для ::[PR_CRED].[L].GetAmount и GetSumDebt, в которых была добавлена прагма автономной транзакции:
Код:
pragma autonomous_transaction;
var_s  number;
begin
::[PR_CRED].[L].GetAmount(...);
commit;
return var_s;
end;


Всем спасибо! Smile


Последний раз редактировалось: widla (Пн Май 12, 2025 15:21), всего редактировалось 2 раз(а)
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Апр 21, 2025 09:21    Ответить с цитатой
Полезность: Нет оценки
В представлении может быть по разным причинам , проверяли в простой операции?
widla
Участник со стажем


Вступление в Клуб: 22.01.2018
СообщениеПн Апр 21, 2025 16:06    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
В представлении может быть по разным причинам , проверяли в простой операции?


В простой операции сумма рассчитывается правильно и в 3L, и в 2L.
pabrz
Участник со стажем


Вступление в Клуб: 27.09.2022
СообщениеПн Апр 28, 2025 03:10    Ответить с цитатой
Полезность: Нет оценки
Посмотрите полный текст представления не предмет скрытых системных условий, типа collection is null, как оно любит без all делать.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах