1:事先在SYS下建了一个表ddl$trace。
2:创建tr_trace_ddl,创建时可以通过,创建后显示状态不正常,
CREATE OR REPLACE TRIGGER tr_trace_ddl
  AFTER ddl
  ON database
  DECLARE
  sql_text ora_name_list_t;
  state_sql ddl$trace.ddl_sql%TYPE;
  BEGIN
  FOR i IN 1..ora_sql_txt(sql_text) LOOP
  state_sql := state_sql||sql_text(i);
  END LOOP;
  
  INSERT INTO ddl$trace(login_user,audsid,ipaddress,
  schema_user,schema_object,ddl_time,ddl_sql)
  VALUES(ora_login_user,’0’, ora_client_ip_address,
  ora_dict_obj_owner,ora_dict_obj_name,SYSDATE,state_sql);
  EXCEPTION
  WHEN OTHERS THEN
  sp_write_log('捕获DDL语句异常错误:'||SQLERRM);
  END tr_trace_ddl;
3:在TOAD里面重新编译时,提示出错,
RIGGER SYS.TR_TRACE_DDL
On line:  2
PLS-00103: 出现符号 ""在需要下列之一时:
 begin function package pragma
   procedure subtype type use <an identifier>
   <a double-quoted delimited-identifier> form current cursor那位知道为是什么