不确定如何短语plsql异常

时间:2017-09-06 07:54:39

标签: sql oracle check-constraint

我想为Check列编写一个例外。如果没有输入“确定”或“不好”,我想提出应用程序错误。我该怎么写这个?

2 个答案:

答案 0 :(得分:0)

这是提出定制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'));

答案 1 :(得分:0)

如下所示?

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

如果列中输入了任何其他值,则会引发数据库错误,

此处提供更多信息:https://www.w3schools.com/sql/sql_check.asp