Journal d'apprenti sage (greenadine) wrote,
Journal d'apprenti sage
greenadine

Categories:

Помощь клуба, oracle


Я не уверен, что правильно понимаю подход, возможно нужно совсем по-другому делать, так что пишите и по этому поводу.

Есть старая программа. В ней есть процедура разбора внешнего файла, распихивание его инфы по разным таблицам. Есть в ней бага: при записи акции проверяем, есть ли в базе эмиттер акции, если ещё нет - создаём эмиттера. Бага в том, что при создании эмиттера (простой insert into) не проверяется, есть ли в базе страна эмиттера, и недавно всё полетело из-за каких-то иранских облигаций.

Что думал сделать я: процедуру create_emmetteur (sorry for my french), которая принимает некоторое количество параметров и пытается создать эмиттера. Если получилось - нормальный возврат, иначе - вылет по exception. Этот exception будет проанализирован внешней процедурой, которая сама решит, куда чего писать, и что делать дальше. Возвращать код я не хочу - во-первых, вся прога написана на exceptions, во-вторых, можно предположить появление других проверок с другими ответными действиями, так что простым да/нет можно не обойтись.

Проблема: exception определённый во внутренней процедуре не виден во внешней. Т.о. я не могу написать raise PAYS_INCONNU во внутренней проге и EXCEPTIONS WHEN PAYS_INCONNU во внешней. Приходится ловить по WHEN OTHERS. Работает, конечно, но некрасиво.
Была идея определить exception во внешней проге и передать параметром во внутреннюю - уродство.
Пока пришла в голову мысль отказаться от именованных exceptions и выкидывать обычное, с неким кодом, по которому потом проверять снаружи. Не очень нравится, нечитаемо.

Да, в oracle я чайник, у нас просто все dba спецы по db2, поэтому можете предполагать, что я не знаю базовых вещей. Я про существование exceptions узнал, разбирая код :-)
Subscribe

  • И расстояние тоже - иллюзия!

    В воскресенье сфотографировала сестру, будучи во Франции, а она - в Австралии. Как? А вот так: И пусть кто-нибудь скажет, что это не фотография :)…

  • Мастер-класс "Невербальная коммуникация"

    Есть такая идея в рамках ассоциации Sagesse (мы там сейчас разрабатываем программу как раз). Может статься, что я этим займусь (ну да, как известно,…

  • Мамотерапия

    Это к теме "прикосновений" (предыдущие обсуждения: Необходимость в физическом контакте, Публичные прикосновения, Лидлофф). Один из вариантов…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 19 comments

  • И расстояние тоже - иллюзия!

    В воскресенье сфотографировала сестру, будучи во Франции, а она - в Австралии. Как? А вот так: И пусть кто-нибудь скажет, что это не фотография :)…

  • Мастер-класс "Невербальная коммуникация"

    Есть такая идея в рамках ассоциации Sagesse (мы там сейчас разрабатываем программу как раз). Может статься, что я этим займусь (ну да, как известно,…

  • Мамотерапия

    Это к теме "прикосновений" (предыдущие обсуждения: Необходимость в физическом контакте, Публичные прикосновения, Лидлофф). Один из вариантов…