首页 文章

PLS-00103:在期待时遇到符号“)”

提问于
浏览
0

我在创建以下触发器时遇到以下错误 . 如何解决错误?请..

第6行出错:PLS-00103:当遇到以下情况之一时遇到符号“)”:(如果循环mod为空pragma raise返回选择更新,则为goto开始情况声明结束异常退出

create or replace trigger totalclaimtrig2
after insert on userinfo
for each row
begin
if (:new.sgaji>'2323.41') and (:new.power>1400)  then
(
:new.jumlah_claim := :new.jarak*0.7;
:new.kelas='A';
)

elsif (:new.sgaji>'2323.41') and (:new.power between 1000 and 1400)  then
(
:new.jumlah_claim := :new.jarak*0.6;
:new.kelas='B';
)

elsif (:new.sgaji>'2323.41') and (:new.power between 500 and 1000)  then
(
:new.jumlah_claim := :new.jarak*0.5;
:new.kelas='C';
)

elsif (:new.sgaji>'2323.41') and (:new.power between 175 and 500)  then
(
:new.jumlah_claim := :new.jarak*0.45;
:new.kelas='D';
)

elsif (:new.sgaji>'2323.41') and (:new.power<175)  then
(
:new.jumlah_claim := :new.jarak*0.4;
:new.kelas='E';
)

end if;
end;​

1 回答

  • 0

    删除所有括号,使用 := 而不是 = 进行分配,删除最后一个 ; 之后的奇怪字符,并将 after insert 更改为 before insert 以更改新值 .

    create or replace trigger totalclaimtrig2
    before insert on userinfo
    for each row
    begin
        if :new.sgaji>'2323.41' and :new.power>1400 then
            :new.jumlah_claim := :new.jarak*0.7;
            :new.kelas:='A';
        elsif :new.sgaji>'2323.41' and :new.power between 1000 and 1400 then
            :new.jumlah_claim := :new.jarak*0.6;
            :new.kelas:='B';
        elsif :new.sgaji>'2323.41' and :new.power between 500 and 1000 then
            :new.jumlah_claim := :new.jarak*0.5;
            :new.kelas:='C';
        elsif :new.sgaji>'2323.41' and :new.power between 175 and 500  then
            :new.jumlah_claim := :new.jarak*0.45;
            :new.kelas:='D';
        elsif :new.sgaji>'2323.41' and :new.power<175 then
            :new.jumlah_claim := :new.jarak*0.4;
            :new.kelas:='E';
        end if;
    end;
    

相关问题