![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
tvik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Подскажите пожалуйста, как сделать Exception на этот только цикл (если я делаю BEGIN перед FOR, то не работает правильно, если делать BEGIN после LOOP, то вылетает не видя ошибку) ![]() |
|||
|
||||
3x3 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
А что должно происходить?
А вообще, что делает код? Такое ощущение, что вы пытаетесь как-то хитро исполнить действие "вставить строку если она ещё не вставлена" и по выходе из цикла её отапдейтить? -------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
tvik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Нет все проще,
в цикле я открываю курсор - all_doc_id(land.cd_id) FOR doc IN all_doc_id(land.cd_id) если курсор не вернул ни одной строки, то выполняем особую вставку, иначе заходим в цикл. Просто если возникиет ошибка NO_DATA_FOUND, то в моем случае она ее не видит, т.к., exception определен в цикле (по-моему) ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Поставь в начало цикла:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
3x3 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
NO_DATA_FOUND случилась бы при явном вызове SELECT xxx INTO yyy WHERE false_condition.
Это-то понятно. Но ответ на вопрос зачем так делать мог бы подсказать более другой путь решения.. А мог бы и нет ![]() PS Вообще-то если ситуация отражает логику программы, то это не исключение. Если нужно просто проверить наличие строки в базе, то для этого служат выражения вида: select count(1) into your_variable from table_name where your_condition and rownum=1 А вот если при исполнении этого кода случится что-то исключительное - например таблица из базы пропала, вот на тот случай и exception. Это сообщение отредактировал(а) 3x3 - 16.11.2006, 14:48 -------------------- Зачем платить больше, когда можно заплатить дважды? |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |