Oracle error handling

Костя_липинист
Дата: 26.10.2005 10:59:46
Буду весьма признателен, если поможете.
Такая тема:
База на Oracle.В ней - пакет, в пакете - хранимая процедура.
Смысл жизни процедуры - делать UPDATE в одной таблице.Для доступа к базе используется Oracle Data Provider for .Net Framework.Это именно тот provider, который не входит в Framework 1.0, и входит в Framework 1.1 , для использования которого в С++ пишут using System.Data.OracleClient; и т.п.
Процедуре дается параметр - ключ строк, которых надо UPDATE.Предварительно она делает SELECT ... INTO ... с использованием входного параметра процедуры.
Ну, создаются объекты Connection, Command, вызывается Command.Parametersю.Add() - так передается параметер. Потом делается

Try
ExecuteNonQuery()
Catch ex1 As OracleException
...

(VB.Net)

Но это все детали. Главное: когда ей даешь (намеренно, с целью проверки на всякие возможные случаи) через входной параметр несуществующее в таблице значение ключа, и при выполнении процедуры возникает NO_DATA_FOUND (ошибка оракла - номер не помню) в том самом SELECT ... INTO ..., т.к. нет такого ключа, Exception я НЕ ПОЛУЧАЮ! Матьперемать!!! А очень хочется Exception получить.
Причем, так: я тестировал одной хорошей утилитой (PL/SQL Developer) свою пакетну процедуру. Все было прекрасно у нас с нею. Получал я свое NO_DATA_FOUND (это относится к тому, что, ежели вы скажете, что, мол, это в оракле что-то).
Ну, и, если, скажем, какие-нибудь другие вызывать исключения в этом .Net'e, допустим, вместо цифир буквы ей дать, то очень хорошо она реагирует, звизда мохнатая, - эксепшн, гворит у вас, такой-то, и код соответствующей ораколовской ошибки возвращает.
Может, кто подскажет, что это? .Net ли это не выдает Exception почемуто, или OCI там что-то нервы трепет - я слышал, Oracle Data Provider его использует, так может он?
И - главное, - как с этим боротся?