想在触发器里将主键失效,如下代码在pl/sql却报错
  DECLARE
  BEGIN
  alter table bale_info disable primary key cascade;   
  END;ora-06550:line3,column3
PLS-00103:Encountered the symbol "ALTER" when expecting one of the following:
.......................但是单独运行语句 alter table bale_info disable primary key cascade;   
表bale_info主键是能失效的
哪位帮忙看看????????

解决方案 »

  1.   

    单独在pl/sql运行语句就可以:
      DECLARE
      BEGIN
      EXECUTE IMMEDIATE 'alter table bale_info disable primary key cascade';
      EXECUTE IMMEDIATE 'alter table bale_info ENABLE primary KEY';
      END;
    但是写在触发器里,当触发时就报错:
    ora-04092:cannot commit in a trigger触发器:
    CREATE OR REPLACE TRIGGER tri_del_type
    BEFORE DELETE
    ON bale_type_info
    FOR EACH ROW  
    DECLARE
      BEGIN
       EXECUTE IMMEDIATE 'alter table bale_info disable primary key cascade';
        DELETE FROM bale_info t WHERE t.type_id=:old.type_id;
      EXECUTE IMMEDIATE 'alter table bale_info ENABLE primary KEY';
    END;