Не знаете, как сформулировать исключение plsql

Я хочу написать исключение для Check колонка. Если 'Ok' или 'Not Ok' не были введены, я хочу вызвать ошибку приложения. Как мне написать это?

2 ответа

Это самый простой способ вызвать исключение PL/SQL на заказ:

 begin
    if p_check not in ('Ok', 'Not Ok') then
       raise_application_error(-20999, 
            'Invalid value for CHECK '|| p_check);
    end if;
    ....

Числа для определенных пользователем исключений должны быть в диапазоне от -20999 до -20000.

Кстати, вы описываете check как "колонна". Исключения PL/SQL для переменных и параметров. Если вы действительно имеете в виду проверку столбца таблицы, вам нужно проверить ограничение:

alter table whatever
    add constraint col23_ck 
         check ( col23 in ('Ok', 'Not Ok'));

Что-то вроде следующего?

ALTER TABLE [TableName]
ADD CONSTRAINT [CheckName] CHECK (Check IN ('Ok', 'Not Ok'));

Это вызовет ошибку БД, если в столбец будет введено любое другое значение,

Более подробная информация здесь: https://www.w3schools.com/sql/sql_check.asp

Другие вопросы по тегам