日期:2014-05-16  浏览次数:20889 次

创建触发器出现PLS-00103: 错误

我想在专业表中major(mid,mname)中添加一个触发器,
当添加或修改时专业名称出现'aaa'时,将其改为'bbb'
我写的语句如下图:


这个触发器是可以创建成功,但是后面有出一些错误,
如下图:



另外,我在用命令行执行oracle时,下面的语句根本就没反应
CREATE OR REPLACE TRIGGER  "MAJOR_T1" 
BEFORE
insert or update on "MAJOR"
for each row
begin
AS BEGIN 
IF (new.mname='cheng') 
THEN new.mname='new_name';
END IF;
END;

求大神支招,只要给出的答案能运行,一定给分
触发器 oracle trigger

------解决方案--------------------
SQL> create table test_trigger(id int,nn varchar2(50));

表已创建。

SQL> create or replace trigger my_trigger
  2  before insert or update
  3  on test_trigger
  4  for each row
  5  begin
  6  if :new.nn='aaa' then
  7  :new.nn:='bbb';
  8  end if;
  9  end;
 10  /

触发器已创建

SQL> set serveroutput on
SQL> insert into test_trigger select 1,'aaaeee' from dual;

已创建 1 行。

SQL> insert into test_trigger select 1,'aaa' from dual;

已创建 1 行。

SQL> select * from test_trigger;

        ID NN
---------- --------------------------------------------------
         1 aaaeee
         1 bbb
------解决方案--------------------
1楼 说出来了、new改为:new