| 
 
  
	| Правильно извлечение реквизитов клиента 
 
 |  
	
		| Предыдущая тема :: Следующая тема |  
		| Автор | Сообщение |  
		| d7d1cd Участник со стажем
 
 
 Вступление в Клуб: 21.01.2022
 
 | 
			
				|  Вт Мар 15, 2022 12:52   Правильно извлечение реквизитов клиента |   |  
				| Полезность: Нет оценки 
 |  
				| Всем привет. Пишу представление для ТБП Платежные документы. При извлечении данных из реквизита KL_DT (или KL_KT) необходимо учитывать является ли клиент клиентом банка или не является им. Например, чтобы выяснить ИНН я видел вот такой код:
 
  	  | Код: |  	  | nvl(d.[KL_DT].[2].[INN], d.[KL_DT].[1].[1].[INN]) : INN | 
 
 То есть, если проверка ИНН реквизита "Не клиент банка" покажет, что он не null, то будет использоваться он, иначе будет использоваться ИНН из реквизита "Клиент банка".
 Насколько правильно делать так для ИНН и вообще для любого другого параметра клиента? Ведь в показанном коде делается предположение о том, что указан только один из ИНН-нов. Но что если оба ИНН буду заполнены? Тогда, в силу функции nvl, вернется ИНН не клиента банка, но ведь при этом клиент может оказаться клиентом банка. Как правильно извлекать данные из KL_DT и KL_KT?
 |  |  
		|  |  
		| -Eugene- Участник
 
 
 Вступление в Клуб: 21.04.2008
 
 | 
			
				|  Вт Мар 15, 2022 16:28   Re: Правильно извлечение реквизитов клиента |   |  
				| Полезность: 2 
 |  
				| В структуре данных для хранения реквизитов клиента есть специальный флаг, содержащий признак какую именно секцию необходимо использовать для чтения данных: 
  	  | Код: |  	  | d.[KL_DT].[0] -- переключатель: 1 - клиент, 2 - не клиент | 
 Поэтому корректнее использовать следующее выражение:
 
  	  | Код: |  	  | decode(d.[KL_DT].[0], 1, d.[KL_DT].[1].[1].[INN], 2, d.[KL_DT].[2].[INN], null) :INN | 
 |  |  
		|  |  
		|  |  
  
	| 
 
 | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете голосовать в опросах
 
 |  |