В 2L ::[PR_CRED].[L].GetAmount и GetSumDebt показывают 0
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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; |
Всем спасибо! 
Последний раз редактировалось: 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 делать. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|