Не знаете, как сформулировать исключение 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