Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Resume Next в EXCEPTION  [new]
Гость123
Guest
Есть процедура

BEGIN
...
SELECT ... INTO variable1 WHERE ...;

SELECT ... INTO variable2 WHERE ...;

EXCEPTION
    WHEN NO_DATA_FOUND THEN
        NULL; 
END;

На первом

SELECT ... INTO variable1 WHERE ...;

срабатывает EXCEPTION - NO_DATA_FOUND. Скажите, что мне необходимо указать, чтобы продолжилось выполнение программы и выполнилось

SELECT ... INTO variable2 WHERE ...;
?

В Visual Basic было

HandleErr:
    If Err.Number = 111 Then
        Resume Next
    End If
25 авг 08, 10:51    [6104132]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
decode
Member

Откуда:
Сообщений: 5
отлавливать ексепшин после каждого селекта, побив на блоки бегин-енд
25 авг 08, 10:54    [6104142]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
BEGIN
   BEGIN
     SELECT ...
 
   EXCEPTION
     ...
   END;


   BEGIN
     SELECT ...
 
   EXCEPTION
     ...
   END;

........
END;
25 авг 08, 10:54    [6104143]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
Гость123
Guest
Т.е. так будет достаточно?

BEGIN
...
BEGIN    
    SELECT ... INTO variable1 WHERE ...;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        NULL;
END

BEGIN
    SELECT ... INTO variable2 WHERE ...;
END

END;
25 авг 08, 11:02    [6104188]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
если задача просто избежать возможных Exception, то можно сделать проще
BEGIN
...
SELECT min(field) INTO variable1 WHERE ...;

SELECT  min(field) variable2 WHERE ...;

END;
В этом случае при отсутствии данных в variable будет NULL, и Exception генериться не будут.
25 авг 08, 11:07    [6104202]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
Уточнение
BEGIN
...
SELECT min(field) INTO variable1 WHERE ...;
SELECT  min(field) INTO variable2 WHERE ...;
END;
25 авг 08, 11:08    [6104206]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
decode
Member

Откуда:
Сообщений: 5
Andrei Fomichev
если задача просто избежать возможных Exception, то можно сделать проще
BEGIN
...
SELECT min(field) INTO variable1 WHERE ...;

SELECT  min(field) variable2 WHERE ...;

END;
В этом случае при отсутствии данных в variable будет NULL, и Exception генериться не будут.

оно то так, но кто сказал что автору нужно брать минимальное\максимальное исли записей будет больше чем одна?
25 авг 08, 11:09    [6104215]     Ответить | Цитировать Сообщить модератору
 Re: Resume Next в EXCEPTION  [new]
Igor Schevchenko
Member

Откуда: Москва
Сообщений: 394
Andrei Fomichev
если задача просто избежать возможных Exception, то можно сделать проще
BEGIN
...
SELECT min(field) INTO variable1 WHERE ...;

SELECT  min(field) variable2 WHERE ...;

END;
В этом случае при отсутствии данных в variable будет NULL, и Exception генериться не будут.


и при значении NULL у field в variable тоже будет NULL
25 авг 08, 11:11    [6104225]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить