Oracle 如何在PL/SQL中创建一个触发器,该触发器可以创建一个限制,使它们只能放置1个字符?

Oracle 如何在PL/SQL中创建一个触发器,该触发器可以创建一个限制,使它们只能放置1个字符?,oracle,plsql,database-trigger,Oracle,Plsql,Database Trigger,我想做的是在他们试图更新或插入属性“sexo”时设置一个限制,用户只能放置字符“F”(女性)或“M”(男性)。这不是触发器的工作。请改为使用: 如果你真的想滥用触发器: ALTER TABLE ator ADD CONSTRAINT ckgender CHECK (sexo IN ('M', 'F')); 这不是触发器的工作。改为使用检查约束:但该检查我在表中使用它,或者我必须创建一个新的检查约束?顺便说一下,如果。。。然后。。。埃尔西夫。。。然后。。。如果结束无括号,无elseif。触发器不

我想做的是在他们试图更新或插入属性“sexo”时设置一个限制,用户只能放置字符“F”(女性)或“M”(男性)。

这不是触发器的工作。请改为使用:

如果你真的想滥用触发器:

ALTER TABLE ator ADD CONSTRAINT ckgender CHECK (sexo IN ('M', 'F'));

这不是触发器的工作。改为使用检查约束:但该检查我在表中使用它,或者我必须创建一个新的检查约束?顺便说一下,如果。。。然后。。。埃尔西夫。。。然后。。。如果结束无括号,无
elseif
。触发器不能
返回任何内容。
ALTER TABLE ator ADD CONSTRAINT ckgender CHECK (sexo IN ('M', 'F'));
CREATE OR REPLACE TRIGGER trg_sexo
BEFORE UPDATE OR INSERT OF sexo ON ator
FOR EACH ROW
BEGIN
    IF (:NEW.sexo NOT IN ('M', 'F'))
    THEN
        RAISE_APPLICATION_ERROR(-20000, 'Só pode meter "F" para feminino e "M" para masculino');
    END IF;
END trg_sexo;
/