我想通过编程知道某一张表是否具有触发器?并且获得触发器的名称??
有谁做过?谢了!!

解决方案 »

  1.   

    dba_/all_/user_trigger中有一个字段table_name可以得到
      

  2.   


    SQL> desc dba_triggers
     名称                                      空?      类型
     ----------------------------------------- -------- --------------------
     OWNER                                              VARCHAR2(30)
     TRIGGER_NAME                                       VARCHAR2(30)
     TRIGGER_TYPE                                       VARCHAR2(16)
     TRIGGERING_EVENT                                   VARCHAR2(216)
     TABLE_OWNER                                        VARCHAR2(30)
     BASE_OBJECT_TYPE                                   VARCHAR2(16)
     TABLE_NAME                                         VARCHAR2(30)
     COLUMN_NAME                                        VARCHAR2(4000)
     REFERENCING_NAMES                                  VARCHAR2(128)
     WHEN_CLAUSE                                        VARCHAR2(4000)
     STATUS                                             VARCHAR2(8)
     DESCRIPTION                                        VARCHAR2(4000)
     ACTION_TYPE                                        VARCHAR2(11)
     TRIGGER_BODY                                       LONGSQL> select trigger_name ,table_name from dba_triggers where table_name=yoursearchtable
      

  3.   

    select trigger_name from user_triggers where table_name='表名';
      

  4.   

    各位:我用下面的语句,但没有查询结果,信息为“未选定行”。
    select table_name, trigger_name from all_triggers where table_name = 'geom_audit'
    我的表明明是有一个触发器的啊!!
      

  5.   

    搞明白了,table_name的名称一定要大小写匹配!!!