Должен ли я использовать ошибку «Слишком много строк» ​​в качестве исключения в своем операторе обновления Oracle?

У меня есть ряд операторов обновления, которые мне нужно использовать в моем пакете Oracle. Редко, но может возникнуть случайная и неизбежная ошибка пользователя, которая приведет к тому, что один из операторов обновления выдаст ошибку «Однострочный запрос -возвращает одну или несколько строк».

Я изучал обработку исключений для oracle PL/SQl, и я немного застрял в том, как и что использовать для перехвата этого исключения, чтобы пакет не аварийно завершился.

Я знаю о существующем предложении исключения «Слишком много строк», созданном до -, но все, что я читал, кажется, говорит, что оно используется для неправильных операторов вставки.

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

Следующий код в основном показывает, как настраиваются обновления в этой конкретной процедуре. но для краткости я использую только пример того, как это выглядит.

INSERT INTO TempTable... --(Initial insert statement)

UPDATE TempTable t SET t.Row_one = (SELECT (Statement_One))
WHERE T.Row_One is NULL

UPDATE TempTable t SET t.Row_one = (SELECT (Statement_Two))
WHERE T.Row_One is NULL

UPDATE TempTable t SET t.Row_one = (SELECT (Statement_Three))
WHERE T.Row_One is NULL

-- Does the exception clause start here?
EXCEPTION
    WHEN TOO_MANY_ROWS THEN
(What do I tell the Procedure to do here, what am I able to tell it to do?)

--end of updates that need the exception handling

-- more insert statements into other tables based on data from the preceding Temp Table

END;

Будет ли это работать или мне нужно создать собственное исключение?

Заранее спасибо.

6
задан dee 12 August 2012 в 22:13
поделиться