| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		jamil Участник - экстремал
 
  Вступление в Клуб: 11.08.2014
  | 
		
			
				 Вт Мар 17, 2015 06:13   CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				В результате выполнения запроса:
 
[code] for(
 
		select cr_all(
 
				cr_all
 
				,cr_all.id																					:C_ID
 
				,cr_all.[LIST_PLAN_PAY]                                                                     :C_LIST_PLAN_PAY
 
				,::[PR_CRED].[L].GetSumDebt(cr_all.id, ::[VID_DEBT]([CODE] = 'ПРОСРОЧ_КРЕДИТ'), V_DATE1)	:SUM_PROS_CR
 
				,::[PR_CRED].[L].GetSumDebt(cr_all.id, ::[VID_DEBT]([CODE] = 'ПЕНЯ_КРЕДИТ'), V_DATE1)		:PENYA_CRED
 
	    		,::[PR_CRED].[L].GetSumDebt(cr_all.id, ::[VID_DEBT]([CODE] = 'ПЕНЯ_ПРОЦЕНТЫ'), V_DATE1)		:PENYA_PRC
 
	    		,::[PR_CRED].[L].GetAmount(cr_all.id,'КРЕДИТ',V_DATE1)										:GET_AMNT_CR
 
		)
 
		in
 
			(select cr(	
 
		    		 cr%id													:ID
 
		    		,cr.[NUM_DOG]										:NUM_DOG	
 
	    			,cr.[CLIENT].NAME									:CLIENT
 
	    			,cr.[CLIENT].[CONTACTS]								:TNUMB
 
		    		,cr.[CREATE_USER]									:CREATE_USER
 
		    		,cr.[SUMMA_DOG]										:SUMMA_DOG
 
		    		,cr.[DATE_ENDING]									:DATE_ENDING
 
		    		,cr.[KIND_CREDIT].[CODE]							:KIND_CREDIT		    		
 
		    		,::[PR_CRED].[L].GetAmount(cr%id, 'ПРОСРОЧ_ПРОЦЕНТЫ_ЗА_КРЕДИТ', V_DATE1)				:SUM_PROS_PRC
 
		    	    ,::[PR_CRED].[L].GetAmount(cr%id,'ПРОСРОЧ_КРЕДИТ',V_DATE1)								:GET_AMNT_PROS_CR
 
		    		,cr.[FT_CREDIT].[CUR_SHORT]                                                             :MONEY_TYPE
 
		    		,cr.[DEPART]										:DEPART
 
		    		,cr.[ESH_SECTOR].[NAME]								:ESH_SECTOR
 
		    		,cr.[OKOHX].[NAME]									:OKOHX
 
		    		,cr.[FT_CREDIT].[CUR_SHORT]							:VALUTA
 
		    		,cr.[LIST_PLAN_PAY]									:LIST_PLAN_PAY
 
		    		
 
		    	)
 
		    	in ::[PR_CRED] all
 
				where (cr.[DATE_CLOSE] is null or cr.[DATE_CLOSE]>V_DATE1)
 
					and (cr.[DEPART].[CODE] like V_PODR.[code]||'%')
 
					and (V_SECTOR is null or cr.[ESH_SECTOR]=V_SECTOR)
 
					and (V_SUMMA is null or cr.[SUMMA_DOG]<=V_SUMMA)
 
					and (cr.[FT_CREDIT].[CUR_SHORT]='USD' or cr.[FT_CREDIT].[CUR_SHORT]='TJS')
 
			order by cr.[FT_CREDIT].[CUR_SHORT] desc, cr.[CREATE_USER] asc)
 
			-----------------------------------------------------------------------
 
			
 
	     all where
 
	     	cr_all.SUM_PROS_PRC > 0 or cr_all.GET_AMNT_PROS_CR > 0	
 
		)
 
	loop
 
	[/code]
 
периодически выводится ошибка вида(рисунок в файле архив)
 
кто нибудь знает причину возникновения такой ошибки?
 
 
  Последний раз редактировалось: jamil (Вт Мар 17, 2015 09:57), всего редактировалось 1 раз | 
			 
		  | 
	 
	
		  | 
	 
	
		Матвеев Евгений Профи
 
  Вступление в Клуб: 31.01.2012
  | 
		
			
				 Вт Мар 17, 2015 09:11    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| ...mdb`шку в студию... | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Мар 17, 2015 10:31   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				Ошибка возникает, если обратиться к экземпляру, которого уже нет.
 
Это, скорее всего, происходит в одной из функций, упомянутых в запросе. Возможно даже, что из-за удаления кредита, процесс обработки которого выполняется в настоящий момент.
 
Попробуйте сделать в них перехват этого исключения. Можно даже вывести utils.error_stack куда-нибудь, чтобы уже целевым образом сделать заявку в ЦФТ   | 
			 
		  | 
	 
	
		  | 
	 
	
		jamil Участник - экстремал
 
  Вступление в Клуб: 11.08.2014
  | 
		
			
				 Вт Мар 17, 2015 10:53   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Random пишет: | 	 		  Ошибка возникает, если обратиться к экземпляру, которого уже нет.
 
Это, скорее всего, происходит в одной из функций, упомянутых в запросе. Возможно даже, что из-за удаления кредита, процесс обработки которого выполняется в настоящий момент.
 
Попробуйте сделать в них перехват этого исключения. Можно даже вывести utils.error_stack куда-нибудь, чтобы уже целевым образом сделать заявку в ЦФТ   | 	  
 
то есть может так быть, что в то время как кредит обрабатывается в select -е его удаляют?
 
разве он не блокируется? | 
			 
		  | 
	 
	
		  | 
	 
	
		vtar Эксперт
 
  Вступление в Клуб: 20.03.2009
  | 
		
			
				 Вт Мар 17, 2015 12:51   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				К вопросу не относится, но
 
 
 	  | Код: | 	 		              and (V_SECTOR is null or cr.[ESH_SECTOR]=V_SECTOR)
 
                  and (cr.[FT_CREDIT].[CUR_SHORT]='USD' or cr.[FT_CREDIT].[CUR_SHORT]='TJS')    | 	  
 
 
лучше пейсать так
 
 
 	  | Код: | 	 		  
 
and (nvl(V_SECTOR, cr.[ESH_SECTOR])=cr.[ESH_SECTOR])
 
and cr.[FT_CREDIT] in ( ::[FT_MONEY] ([CUR_SHORT]='USD') , ::[FT_MONEY] ([CUR_SHORT]='TJS'))
 
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		jamil Участник - экстремал
 
  Вступление в Клуб: 11.08.2014
  | 
		
			
				 Вт Мар 17, 2015 12:57   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | vtar пишет: | 	 		  К вопросу не относится, но
 
 
 	  | Код: | 	 		              and (V_SECTOR is null or cr.[ESH_SECTOR]=V_SECTOR)
 
                  and (cr.[FT_CREDIT].[CUR_SHORT]='USD' or cr.[FT_CREDIT].[CUR_SHORT]='TJS')    | 	  
 
 
лучше пейсать так
 
 
 	  | Код: | 	 		  
 
and (nvl(V_SECTOR, cr.[ESH_SECTOR])=cr.[ESH_SECTOR])
 
and cr.[FT_CREDIT] in ( ::[FT_MONEY] ([CUR_SHORT]='USD') , ::[FT_MONEY] ([CUR_SHORT]='TJS'))
 
 
 | 	 
  | 	  
 
спасибо за совет, в будущем учту
 
а по поводу вопроса что то можете сказать? | 
			 
		  | 
	 
	
		  | 
	 
	
		vtar Эксперт
 
  Вступление в Клуб: 20.03.2009
  | 
		
			
				 Вт Мар 17, 2015 13:21   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | jamil пишет: | 	 		  спасибо за совет, в будущем учту
 
а по поводу вопроса что то можете сказать? | 	  
 
 
Вам уже ответили
 
 	  | Random пишет: | 	 		  Ошибка возникает, если обратиться к экземпляру, которого уже нет.
 
Это, скорее всего, происходит в одной из функций, упомянутых в запросе. Возможно даже, что из-за удаления кредита, | 	  
 
 
Способ решения
 
1. Административный - тот кто запускает отчет, сначала ждет подтверждения от бэк-офиса, что все операции с кредитами завершены.
 
 
2. технический - формировать отчет на READ-ONLY БД STAND-BY , например | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Ср Мар 18, 2015 05:46   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | jamil пишет: | 	 		   	  | Random пишет: | 	 		  Ошибка возникает, если обратиться к экземпляру, которого уже нет.
 
 | 	  
 
то есть может так быть, что в то время как кредит обрабатывается в select -е его удаляют?
 
разве он не блокируется? | 	  
 
 
нет, конечно, с чего бы. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Ср Мар 18, 2015 05:48   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | vtar пишет: | 	 		  лучше пейсать так
 
 
 	  | Код: | 	 		  
 
and (nvl(V_SECTOR, cr.[ESH_SECTOR])=cr.[ESH_SECTOR])
 
and cr.[FT_CREDIT] in ( ::[FT_MONEY] ([CUR_SHORT]='USD') , ::[FT_MONEY] ([CUR_SHORT]='TJS'))
 
 
 | 	 
  | 	  
 
по второму and - согласен;
 
по первому and - не согласен.
 
nvl - функция, и не позволяет Oracle использовать индекс, если он есть, конечно. | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Ср Мар 18, 2015 05:50   Re: CLS_OBJECT_NOT_FOUND | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | vtar пишет: | 	 		  Способ решения
 
1. Административный - тот кто запускает отчет, сначала ждет подтверждения от бэк-офиса, что все операции с кредитами завершены.
 
 
2. технический - формировать отчет на READ-ONLY БД STAND-BY , например | 	  
 
 
Есть ещё один способ. Вместо упомянутых функций написать и использовать свои (или сделать заявку в ЦФТ), где существует перехват исключения и возврат незначащих значений. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |