CREATE OR REPLACE TRIGGER "HJGOA"."ccc" AFTER INSERT ON "HJGOA"."FORMSON_0589" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
DECLARE
xmbhS varchar(50);
--mainid varchar(50);
Cursor cur_usercode(XMBH VARCHAR(50)) is select id from formmain_0640 where field0005 = XMBH;
begin
SELECT field0005 INTO XMBHS from FORMMAIN_0588 where id = :NEW.formmain_id;
  for dept_row in cur_usercode(XMBHS) loop
    insert into FORMSON_0886 (dept_row.ID,field0030,field0031,field0032,field0033)VALUES(mainid,:NEW.field0008,:NEW.field0009,:NEW.field0010,:NEW.field0015);
  end loop;
END
ALTER TRIGGER "HJGOA"."ccc" ENABLE
oracle中用了游标,一直提示无效的SQL语句,菜鸟一枚,问题可能比较低级,但是实在没办法,求大神解惑。

解决方案 »

  1.   

    mainid是什么,定义被注释了
      

  2.   

    CREATE TRIGGER ..END;   -- 这里加一个分号
      

  3.   

     "HJGOA"."ccc"  这个命名对不对哦 
      

  4.   

    那就是 ccc 这个对象不存在。确定是小写吗?
      

  5.   

    CREATE OR REPLACE TRIGGER "HJGOA"."ccc" AFTER INSERT ON "HJGOA"."FORMSON_0589" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW 
     DECLARE
     xmbhS varchar(50);
     --mainid varchar(50);
     Cursor cur_usercode(XMBH VARCHAR(50)) is select id from formmain_0640 where field0005 = XMBH;
     begin
     SELECT field0005 INTO XMBHS from FORMMAIN_0588 where id = :NEW.formmain_id;
       for dept_row in cur_usercode(XMBHS) loop
         insert into FORMSON_0886 (dept_row.ID,field0030,field0031,field0032,field0033)VALUES(mainid,:NEW.field0008,:NEW.field0009,:NEW.field0010,:NEW.field0015);
       end loop;
     END
     ALTER TRIGGER "HJGOA"."ccc" ENABLE