Почему не найдены данные, хотя они там ЕСТЬ?!!
От: kto-to  
Дата: 05.10.04 10:47
Оценка:
есть процедура
CREATE OR REPLACE PROCEDURE FE_SP_FM_CheckOperAcc
  (hdebet RAW, hcredit RAW, icurrency RAW, ctdate date)
is
      debet_iplan RAW(16);           credit_iplan RAW(16);
      debet_priority NUMBER;         credit_priority NUMBER;
      debet_ctdateb date;            credit_ctdateb date;
      debet_ctdatee date;            credit_ctdatee date;
      debet_chblocking number;       credit_chblocking number;
      debet_chend number;            credit_chend number;
      debet_chregister number;       credit_chregister number; -- Основная учетная валюта
      debet_chcurrency number;       credit_chcurrency number; -- другая валюта
      debet_icurrency RAW(16);       credit_icurrency RAW(16);
      user_priority NUMBER;
BEGIN

   SELECT FE_FLD_IPLAN, FE_FLD_CTPRIORITYUSE,FE_FLD_CTDATEB,FE_FLD_CTDATEE,FE_FLD_CHBLOCKING,
            FE_FLD_CHEND,FE_FLD_CHREGISTER,FE_FLD_ICURRENCY,FE_FLD_CHCURRENCY
   INTO  debet_iplan, debet_priority, debet_ctdateb,     debet_ctdatee,    debet_chblocking,
            debet_chend, debet_chregister, debet_icurrency,    debet_chcurrency
   FROM  FE_TBL_ACC c     where c.fe_fld_pkguid = hdebet;
--   Raise_application_error(-20000, hdebet);
END;





1) Если выполнить вручную селект с тем hdebet,
которое туда приходит (проверял), то возвращается 1 строка
(как и должно быть)
2) если выполнить процедуру на клиенте через ADo.ORaOleDB,
то летит ошибка



ORA-01403: no data found
ORA-01403: no data found
ORA-06512: at "FEB_WORK.FE_SP_FM_CHECKOPERACC", line 89
ORA-06512: at "FEB_WORK.FE_SP_FM_INSERTSALDO", line 11
ORA-06512: at "FEB_WORK.FE_T_OPER_IN_CUS", line 2
ORA-04088: error during execution of trigger 'FEB_WORK.FE_T_OPER_IN_CUS'
ORA-06512: at "FEB_WORK.FE_SP_INSERT", line 33
ORA-06512: at line 1


3) Если раскомментировать raise в конце процедуры,
то просто выводится значение hdebet в ошибке
(причем, чтобы оптимизатор не соптимизировал что-то,
я выводил таку переменную значениекоторой невозможно
определить без выполнения всей процедуры)


ГДЕ ГРАБЛИ ГОСПОДА ?!.. Где они родимые спрятались?


Еще есть такая лажа...


Есть клиент который через ADO.OraOLEDB вызывает хранимую
процедуру на серваке. Если в процедуре дается COMMIT,
то клиент валится по ошибке

ORA-03113 end-of-file on communication channel
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.