写了一个DDL触发器如下
set serveroutput on
    CREATE OR REPLACE TRIGGER   
       SYSTEM.CREATE_OBJECT_TRIGGER
       before CREATE ON SYSTEM.SCHEMA
    BEGIN       
        dbms_output.put_line('新创建一个SYSTEM表成功');
    END CREATE_OBJECT_TRIGGER; 创建好了之后,无论如何create table,create user等都没有触发这个触发器,不知道是哪里弄错了?
比如创建一个SYSTEM模式的表
create table system.aadamyt(sn varchar(2));
但并没有输入触发器当中的语句.

解决方案 »

  1.   

    这个触发器的含义是你以system用户登录数据库后,执行的任意create语句将被触发。
    create table XXXXX.aadamyt(sn varchar(2));任意XXX都被触发。
    不是你说的那个意思。 
      

  2.   

    不过出了一件奇怪的事情,明明是以SYSTEM登录的,使用select   login_user   from   dual语句查得结果却是为SYS 出了什么问题?
      

  3.   

    谢谢5楼,确实是这样
    不过这样,真的不懂了
    难道login_user不是登录用户的意思了?
      

  4.   

    真的是这个原因,弄好了.只是不懂,SYSTEM为什么不要as sysdba才能达到这个效果?