不确定如何表达plsql异常

不确定如何表达plsql异常,sql,oracle,check-constraint,Sql,Oracle,Check Constraint,我想为Check列写一个异常。如果没有输入“Ok”或“Not Ok”,我想提出一个应用程序错误。我该如何写这篇文章呢?这是引发定制PL/SQL异常的最简单方法: begin if p_check not in ('Ok', 'Not Ok') then raise_application_error(-20999, 'Invalid value for CHECK '|| p_check); end if; .... 用户定义的

我想为
Check
列写一个异常。如果没有输入“Ok”或“Not Ok”,我想提出一个应用程序错误。我该如何写这篇文章呢?

这是引发定制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'));
如果在列中输入任何其他值,这将引发DB错误


更多信息请点击此处:

到目前为止,您尝试了什么?