现在做一个基于DDL语句的触发器
拦截表的rename事件
可是每次从sys.dictionary_obj_name获取的表名都是rename前的名字,rename后的表名要怎么获取?
哪位达人知道???create or replace trigger tri_test_db
after RENAME on DATABASE
Begininsert into GGBA03A
(ggba03a010, ggba03a020, ggba03a030, ggba03a040, ggba03a050)
values
(sys.sysevent,
sys.dictionary_obj_type,
sys.dictionary_obj_name, --对象名
sys.dictionary_obj_owner,
(select sysdate from dual));End;
拦截表的rename事件
可是每次从sys.dictionary_obj_name获取的表名都是rename前的名字,rename后的表名要怎么获取?
哪位达人知道???create or replace trigger tri_test_db
after RENAME on DATABASE
Begininsert into GGBA03A
(ggba03a010, ggba03a020, ggba03a030, ggba03a040, ggba03a050)
values
(sys.sysevent,
sys.dictionary_obj_type,
sys.dictionary_obj_name, --对象名
sys.dictionary_obj_owner,
(select sysdate from dual));End;
解决方案 »
- oracle 能不能实现 往视图里添加一条 记录 ,但是不添加到主表
- 这两个SQL怎么写,求教
- 救急阿 一个分组问题
- 关于oracle的数据异步复制问题。。救命啊~
- ●●procedure可以调用另一个procedure吗?
- 偶是一大专业毕业生一直想做一名DBA,今天找到工作了是一网络公司的网络维护.对前途迷茫呀?请高人指点指点我吧
- 如何将一台服务器上的Oracle数据库完全地迁移到另一台机器上?
- 如何调用已经在oracle中注册过的schema
- rollback表空间删除了,数据库打不开了,怎么办?
- 如何定义视图中虚拟字段的数据类型和长度?--急--
- 求一SQL,有点困难,高手请进
- 求一sql---按表中两个字段的顺序排列记录(有优先级)
能给个详解吗?
----------
1OPER@tl> select * from test2;
select * from test2
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
OPER@tl> create or replace trigger tr_test
2 after alter on schema
3 declare
4 v_sql varchar2(40);
5 begin
6 select trim(substr(lower(sql_text),instr(lower(sql_text),'to')+2)) into v_sql
7 from v$sqlarea
8 where sql_id=(select sql_id from v$session
9 where audsid=userenv('sessionid'));
10 dbms_output.put_line('old_name:'||dictionary_obj_name);
11 dbms_output.put_line('new_name:'||v_sql);
12 end;
13 /触发器已创建OPER@tl> alter table test rename to test2;
old_name:TEST
new_name:test2表已更改。OPER@tl> select * from test2; AAA
----------
1OPER@tl>