一个触发器的问题,我想建一个触发器捕获用户建表的信息

hbchen33 2005-11-15 05:34:40
我在oracle里建立了系统级触发器 create trigger aaa after create on database
然后我在主体里写了读视图sys.all_constraints里的内容,但是我在建一个表时,点确定后执行触发器,确读不到我刚才建的表的约束,好象sys.all_constraints是在执行完触发器后才将约束信息写入的,不知道是为什么呢????
...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyi8903 2006-06-22
  • 打赏
  • 举报
回复
Create Or Replace Trigger tri_ddl_before Before ddl
ON test.Schema
DECLARE
sql_text dbms_standar.ora_name_list_t;
state_sql Varchar2(4000);
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql||sql_text(i);
END LOOP;
................
End If;
EXCEPTION
WHEN NO_DATA_FOUND THEN
Null;
END tr_ddl_before;
liuyi8903 2006-06-22
  • 打赏
  • 举报
回复
完全可以.创建一个基于用户的trigger
jametong 2006-06-16
  • 打赏
  • 举报
回复
创建ddl的trigger.

ora_sql_text函数来得到当前正在执行的ddl语句...

declare
n number;
str_stmt varchar2(4000);
sql_text ora_name_list_t;
l_trace number;
l_alert number;
str_session v$session%rowtype;
BEGIN
n := ora_sql_txt(sql_text);
大哈哈0814 2006-05-23
  • 打赏
  • 举报
回复
建立DDL触发器:
create triger triger_name
after ddl on scott.schema
begin
........
boydgmx 2006-01-10
  • 打赏
  • 举报
回复
你的触发器代码肯定有问题
把触发器的内容帖出来看看

仔细检查一下你读取的方式
hbchen33 2005-11-16
  • 打赏
  • 举报
回复
有高手知道吗

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧