В 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 делать. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |