| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		CSmaster Участник со стажем
 
  Вступление в Клуб: 24.09.2021
  | 
		
			
				 Чт Июн 23, 2022 16:17   Работа с массивом, принадлежащим ТБП | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Добрый день. Дайте пожалуйста примеры, как лучше и эффективней работать с массивами ТБП. На примере ТБП ::[GUARANTIES]
 
массив [GR_HIST_RISK].
 
Какими приемами plplus можно эффективно посмотреть, есть ли в этом массиве записи, где категории качества != 1 ? Чем больше вариантов - тем лучше  
 
 
Заранее спасибо. | 
			 
		  | 
	
	
		  | 
	
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Пт Июн 24, 2022 10:05    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Это конкурс? Призы будут? | 
			 
		  | 
	
	
		  | 
	
	
		CSmaster Участник со стажем
 
  Вступление в Клуб: 24.09.2021
  | 
		
			
				 Пт Июн 24, 2022 10:48    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Volod пишет: | 	 		  | Это конкурс? Призы будут? | 	  
 
Ну вот, я за идею, а тут призы подавай..   | 
			 
		  | 
	
	
		  | 
	
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Пт Июн 24, 2022 11:15    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				select x(count(*)) into v_nnn
 
in GUARANTIES_REF.[GR_RISK_HIST] 
 
where x.[SERVICE_QUAL].[SIGN] <> 1 | 
			 
		  | 
	
	
		  | 
	
	
		CSmaster Участник со стажем
 
  Вступление в Клуб: 24.09.2021
  | 
		
			
				 Пт Июн 24, 2022 12:16    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Volod пишет: | 	 		  select x(count(*)) into v_nnn
 
in GUARANTIES_REF.[GR_RISK_HIST] 
 
where x.[SERVICE_QUAL].[SIGN] <> 1 | 	  
 
Тоже сделал выборкой в модуле:
 
 	  | Код: | 	 		  
 
                  select rgr(rgr%id) in ::[CR_RISK_GR] all
 
                     where rgr%collection = r_guar.[GR_RISK_HIST] and rgr.[SERVICE_QUAL].[SIGN] != 1
 
                     and rgr.[DATE_END] > p_on_date
 
                        into v_risk_gr;
 
 | 	  
 
Интересно, может в plplus есть какие нибудь встроенные специфичные функции для работы с массивами. | 
			 
		  | 
	
	
		  | 
	
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Пт Июн 24, 2022 12:18    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| ваш селект даст ошибку, если записей вернет больше 1 | 
			 
		  | 
	
	
		  | 
	
	
		CSmaster Участник со стажем
 
  Вступление в Клуб: 24.09.2021
  | 
		
			
				 Пт Июн 24, 2022 14:05    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Volod пишет: | 	 		  | ваш селект даст ошибку, если записей вернет больше 1 | 	  
 
v_risk_gr - это ассоциативный массив. Транслируется в bulk collect, too_many_rows не выбивает
 
 	  | Код: | 	 		  
 
select  a1.ID
 
bulk collect into V_RISK_GR
 
from Z#SERVICE_QUAL a2, Z#CR_RISK_GR a1
 
where a1.C_SERVICE_QUAL=a2.id
 
and (a1.COLLECTION_ID = plp$5$1......
 
 | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		 |