-3

我想为Check专栏写一个例外。如果没有输入“Ok”或“Not Ok”,我想提出一个应用程序错误。我将如何写这个?

4

2 回答 2

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'));
于 2017-09-06T08:07:13.610 回答
0

像下面这样的东西?

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

如果在列中输入任何其他值,这将引发 DB 错误,

更多信息在这里:https ://www.w3schools.com/sql/sql_check.asp

于 2017-09-06T08:08:38.283 回答