CREATE SEQUENCE Sequence_pde_log;CREATE OR REPLACE TRIGGER "Sequence_pde_log"
BEFORE
insert on pde_log
for each row
begin
select Sequence_pde_log.nextval into :NEW.log_id from dual;
end;
这段如何在pl/sql块中执行~    declare
     v_sql varchar2(200);
     begin
      v_sql := 'CREATE SEQUENCE Sequence_pde_l';
      execute immediate v_sql;
      v_sql := ' CREATE OR REPLACE TRIGGER Sequence_pde_l '
      ||' BEFORE '
      ||' insert on pde_log '
      ||'  for each row '
      || ' begin '
      ||' select Sequence_pde_l.nextval into :NEW.log_id from dual '
      ||'  end ';
        execute immediate v_sql;
      end;
由于dual后面有个分号,所以一直报错~ 最后一个end是不是要分号,报错为1/71     PLS-00103: 出现符号 "end-of-file"在需要下列之一时:   ; 

解决方案 »

  1.   


    declare
      v_sql varchar2(200);
    begin
      v_sql := 'CREATE SEQUENCE Sequence_pde_l';
      execute immediate v_sql;
      v_sql := ' CREATE OR REPLACE TRIGGER Sequence_pde_l ' || ' BEFORE ' ||
               ' insert on emp ' || ' for each row ' || ' begin ' ||
               ' select Sequence_pde_l.nextval into :NEW.log_id from dual;' ||--- dual后少了分号
               ' end ';
      execute immediate v_sql;
    end;
      

  2.   


    declare
      v_sql varchar2(200);
    begin
      v_sql := 'CREATE SEQUENCE Sequence_pde_l';
      execute immediate v_sql;
      v_sql := ' CREATE OR REPLACE TRIGGER Sequence_pde_l ' || ' BEFORE ' ||
               ' insert on emp ' || ' for each row ' || ' begin ' ||
               ' select Sequence_pde_l.nextval into :NEW.log_id from dual;' ||--- dual后少了分号
               ' end ';
      execute immediate v_sql;
    end;