CftClub.ru
Клуб специалистов ЦФТ-Банк

CLS_OBJECT_NOT_FOUND

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 куда-нибудь, чтобы уже целевым образом сделать заявку в ЦФТ Smile
jamil
Участник - экстремал


Вступление в Клуб: 11.08.2014
СообщениеВт Мар 17, 2015 10:53   Re: CLS_OBJECT_NOT_FOUND Ответить с цитатой
Полезность: Нет оценки
Random пишет:
Ошибка возникает, если обратиться к экземпляру, которого уже нет.
Это, скорее всего, происходит в одной из функций, упомянутых в запросе. Возможно даже, что из-за удаления кредита, процесс обработки которого выполняется в настоящий момент.
Попробуйте сделать в них перехват этого исключения. Можно даже вывести utils.error_stack куда-нибудь, чтобы уже целевым образом сделать заявку в ЦФТ Smile

то есть может так быть, что в то время как кредит обрабатывается в 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 , например


Есть ещё один способ. Вместо упомянутых функций написать и использовать свои (или сделать заявку в ЦФТ), где существует перехват исключения и возврат незначащих значений.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru