想写一个过程,或触发器当执行它或触发它时,先执行其本身,然后再删除其本身?不知在oracle里面能不能做到?

解决方案 »

  1.   

    create or replace procedure p_demo as
    str varchar2(100);
    begin
    str:='drop procedure p_demo';
    execute immediate p_demo;
    end p_demo;
    /
      

  2.   

    先不说别的,过程体中可以执行DDL语句么? (例如:drop table..)
      

  3.   

    创建或删除对象就可以,至于楼主提出此问题,本人从末听过,学识不足create trigger create_object
    after create on schema
    declare
    str varchar2(50);
    begin
    str:='drop '||sys.dictionary_obj_type||' '||sys.dictionary_obj_name;
    execute immediate str;
    end;
    /这个例子就是当在模式中创建对象后,立即删除