忽略SQL触发器语句
它应该确保您只能设置预定义的值,否则会显示错误。我犯了一个错误 第6行错误:PL/SQL:语句被忽略忽略SQL触发器语句,sql,oracle,triggers,Sql,Oracle,Triggers,它应该确保您只能设置预定义的值,否则会显示错误。我犯了一个错误 第6行错误:PL/SQL:语句被忽略 4.每行 5.声明 6.v_stru VARCHAR2(50) 试着这样做: CREATE OR REPLACE TRIGGER radnici_strucna_sprema BEFORE INSERT OR UPDATE ON radnici FOR EACH ROW DECLARE v_stru VARCHAR2(50); BEGIN v_stru := :NEW.strucna_
4.每行
5.声明
6.v_stru VARCHAR2(50) 试着这样做:
CREATE OR REPLACE TRIGGER radnici_strucna_sprema
BEFORE INSERT OR UPDATE ON radnici
FOR EACH ROW
DECLARE
v_stru VARCHAR2(50);
BEGIN
v_stru := :NEW.strucna_sprema;
IF v_ss = 'osnovno' THEN
:NEW.strucna_sprema := v_stru;
ELSIF v_ss = 'srednje' THEN
:NEW.strucna_sprema := v_stru;
ELSIF v_ss = 'vise' THEN
:NEW.strucna_sprema := v_stru;
ELSIF grade = 'visoko' THEN
:NEW.strucna_sprema := v_stru;
ELSE
RAISE_APPLICATION_ERROR(NUM => -20002,
MSG => 'Forma strucne spreme nije odgovarajuca!');
END IF;
END;
问题是
STRUCNA_SPREMA公司
这个变量STRUCNA_SPREMA是表中的一列,radnici,或者代表什么?
但老实说,我不明白你的逻辑。在变量中指定列的值,然后在列中指定该变量的值。为什么?此外,请确保STRUCNA_SPREMA是一个varchar
亲切问候,,
Stefan您在哪个客户机中看到该错误?看起来像,但可能是另一个客户。。。此外,不直接相关,但是
v_ss
和等级
应该来自哪里?STRUCNA_SPREMA的意味着触发器仅在该列更新时触发,因此(即使逻辑没有多大意义)。这并不能解释或避免OP获取的错误。逻辑是:我有strucna_sprema的预定义值,它需要检查是预定义值之一,如果是,则设置该列,如果不发送和错误
CREATE OR REPLACE TRIGGER radnici_strucna_sprema
BEFORE INSERT OR UPDATE ON radnici
FOR EACH ROW
DECLARE
v_stru VARCHAR2(50);
BEGIN
v_stru := :NEW.strucna_sprema;
IF v_ss = 'osnovno' THEN
:NEW.strucna_sprema := v_stru;
ELSIF v_ss = 'srednje' THEN
:NEW.strucna_sprema := v_stru;
ELSIF v_ss = 'vise' THEN
:NEW.strucna_sprema := v_stru;
ELSIF grade = 'visoko' THEN
:NEW.strucna_sprema := v_stru;
ELSE
RAISE_APPLICATION_ERROR(NUM => -20002,
MSG => 'Forma strucne spreme nije odgovarajuca!');
END IF;
END;