Właśnie dostałem mój najgorszy koszmar utrzymania: cichy błąd.Oracle Rel.Net niezgłoszony błąd przy wywołaniu do procedury w nieprawidłowym opakowaniu
Wywoływałem procedurę przy użyciu Odp.Net w niestandardowym pakiecie, a wywołanie procedury nie powiodło się bez żadnego wyjątku (weryfikowane przy użyciu zarówno debugowania krok po kroku, jak i klauzuli catch all). Po wielu poszukiwaniach zauważyłem, że Pakiet został unieważniony (pewne nieszczęśliwe wypadki na serwerze), po rekompilacji pakietu wszystko wróciło do normy (kod wywoławczy był poprawny i niezmodyfikowany).
Ponieważ w Oracle jest naprawdę łatwo unieważnić pakiet, muszę złapać tego rodzaju błąd, jeśli tylko loguję go do debugowania.
Z MS System.Data.OracleClient wyrzucono wyjątek OracleException w tym przypadku, czy istnieje sposób na uzyskanie podobnego zachowania z Oracle OracleAccess? Jakiś rodzaj parametru sqlnet.ora? Nie znalazłem podobnego problemu nigdzie w sieci.
przy użyciu serwera Oracle11R2, najnowszego klienta Oracle Win32. .Net3.5.
Michel, nie jestem pewien, że ci się to spodoba, ale używam odp.net i jeśli spróbuję wywołać nieprawidłowy pakiet, otrzymuję wyjątki - wyjątek, który widzę w .net jest wierny wyjątek w Oracle. Procedury przechowywane, które wywołujemy, zawsze będą miały parametr out, nie wiem, czy to by miało znaczenie (może to spowodować, że odp.net wykona pewne przetwarzanie, które może spowodować odrzucenie wyjątku) – PeteH