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

Валидатор вызываемой операции
На страницу Пред.  1, 2, 3, 4, 5
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
zh
Участник со стажем


Вступление в Клуб: 10.12.2009
СообщениеЧт Фев 11, 2010 17:23    Ответить с цитатой
Полезность: Нет оценки
победил PAY_WAY но.. получил новую ошибку:

ORA-06502: PL/SQL: : NULL значение ключа индексной таблицы ошибка числа или значения

в строке
Код:
   dog->(DEPN)[CANC_TERM](P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);


Smile
_________________
Всего должно быть в меру.
alexiy
Профи


Вступление в Клуб: 29.06.2007
СообщениеЧт Фев 11, 2010 17:44    Ответить с цитатой
Полезность: Нет оценки
попробуйте так:
Код:
P_MESSAGE := 'DEFAULT';
P_INFO := null;

dog=>[CANC_TERM](P_MESSAGE, P_INFO,P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);

P_MESSAGE := 'VALIDATE';
P_INFO := 'OK';
       
dog=>[CANC_TERM](P_MESSAGE, P_INFO,P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);

_________________
two bee or not two bee
zh
Участник со стажем


Вступление в Клуб: 10.12.2009
СообщениеЧт Фев 11, 2010 18:38    Ответить с цитатой
Полезность: Нет оценки
alexiy пишет:
попробуйте так:
Код:
P_MESSAGE := 'DEFAULT';
P_INFO := null;

dog=>[CANC_TERM](P_MESSAGE, P_INFO,P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);

P_MESSAGE := 'VALIDATE';
P_INFO := 'OK';
       
dog=>[CANC_TERM](P_MESSAGE, P_INFO,P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);


У меня именно так и сделано...
Плюс, после идет экзекют:

Код:
   dog->(DEPN)[CANC_TERM](P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);

или
Код:
   dog.[CANC_TERM](P_DATE,P_SUMMA,P_CLIENT_REQ,P_COURCE,P_SUMM_BACK,P_SUMM_BACK_CUR,P_NEW_VID_DOG,P_RET_DEBIT,P_RET_DEBIT_ACC);

одна фигня, та же ошибка... Sad
_________________
Всего должно быть в меру.
zh
Участник со стажем


Вступление в Клуб: 10.12.2009
СообщениеЧт Фев 11, 2010 22:36    Ответить с цитатой
Полезность: Нет оценки
покопал... выяснилось,что при использовании стороннего вызова с валидатором, некий массивчик обнуляется, и система возвращает ошибку:

Код:
if V_SUMMS(V_SUMMS.last).[COMM_SUMMA] > 0 then -- Налог
         ExternalCode := 'WN';
      else
         ExternalCode := 'NN';
      end if;


Это тело операции CANC_TERM

Почему так, остается только гадать... Sad
_________________
Всего должно быть в меру.
zh
Участник со стажем


Вступление в Клуб: 10.12.2009
СообщениеПт Фев 12, 2010 20:14    Ответить с цитатой
Полезность: Нет оценки
В общем, разобрались таки...

Массив действительно обнулялся после валидации.. пришлось прибегнуть к хитрости, выгружать его в отдельный массив в расширении, а после возвращать ему его значения. Плюс, была еще пара подводных камней, но, результат на лицо. Все работает как часы. Smile

Спасибо всем за посильную помощь... Smile
_________________
Всего должно быть в меру.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, 4, 5
Страница 5 из 5

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