处于某种原因,需要对数据库所有用户表加上一个更新触发器。单个的加时是可以的,但是如何批量的去给这些表加呢,比如通过 select * from cat;得到表名后,如何再批量的给这些表加上触发器呢,

解决方案 »

  1.   

    所有表加触发器,不太好吧,楼主想要完成什么需求?
    如果要建,你可以拼接SQL使用动态SQL来实现
    1、select table_name from user_tables;
    2、针对1步的表拼接建立触发器的SQL;
    3、execute immediate 拼接的SQL。
      

  2.   

    select 'create or replace trigger trig_'||table_name||' before insert on '||table_name||' for each row declare begin null; end;' from cat;
    如果触发器类型统一的话,把null;部分改为你想嵌入的代码。
      

  3.   

    存储过程里默认角色权限无效,需要显式授权。
    简单的办法,把所有创建触发器的代码放在一个.sql脚本文件里,运行之。
      

  4.   

    使用EXCEL表,查出表名,批量写成脚本,统一执行!