暂无图片
https://blog.csdn.net/royalwzy/article/details/61479 有人写过oracle这种功能的触发器吗?
我来答
分享
zero
2020-03-04
https://blog.csdn.net/royalwzy/article/details/61479 有人写过oracle这种功能的触发器吗?

我想写个oracle触发器,记录表结构操作(修改表/修改表注释/修改列信息)

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
莫得感情的萝卜头

CREATE OR REPLACE TRIGGER
trigger_name
after
alter table ********
ON schema
[WHEN condition]
PL/SQL_block | CALL procedure_name;

暂无图片 评论
暂无图片 有用 0
打赏 0
郭耀龙

可以用DDL触发器实现,思路如下:

--创建DDL触发器
CREATE OR REPLACE TRIGGER SYS.TRG_DDL_LOGS
AFTER DDL ON DATABASE
DECLARE
  sql_text ora_name_list_t;
  n PLS_INTEGER;
  v_stmt VARCHAR2(2000);
BEGIN
--获取DDL语句
  n := ora_sql_txt(sql_text);
  FOR i IN 1..n LOOP
    v_stmt := v_stmt || sql_text(i);
  END LOOP;
--将DDL语句插入到记录DDL操作的表,这个表自己预先创建
  INSERT INTO event_table VALUES ('text of
    triggering statement: ' || v_stmt);
EXCEPTION
          WHEN OTHERS THEN
          NULL;
END TRG_DDL_LOGS;

复制

这里的DDL可以换成具体的DDL事件,也可以使用DDL,这样让所有DDL事件生效。
另外这里可以再结合触发器的Event Attribute Functions和sys_context获取额外的DDL会话信息。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
expdp导出卡在第一步
回答 5
额第一个表只有5万条数据,但是不知道谁建了1600个分区,不知道是不是和分区数有关
报了ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段,以后过了 8个小时又正常,是oracle 自动扩展了 temp空间 还是释放了部分 temp 空间?
回答 8
临时表用完,临时表空间就释放了撒。
oracle授权给一个只读账号,只能读A账号下的所有表,有几百张表,怎么操作?
回答 1
已采纳
创建一个角色权限createroleselectalla;批量查出A的表进行拼接select‘grantselectona.’||tablename||’toselectalla;’fromdbata
Oracle性能检测的工具有什么?
回答 2
性能测试工具吧,我一般用benchmarksql,模拟tpcc的基准测试。
RMAN备份和数据泵备份的比较,适用范围?
回答 3
rman可以增量。快,但是不能跨平台。逻辑备份只能全量。不过可以跨版本,跨平台(windows到linux都行)。就是慢。
oracle 索引
回答 2
全局索引和分区索引有区别,如果你的索引是全局索引,然后你又加了并行,CBO判断走分区扫描更合适,就不会用索引了,全局索引想要不走分区扫描,那你就把sql中的并行去掉。对于分区表,并行和索引想一起用的话
Oracle如何查看各个表空间占用磁盘情况?
回答 2
已采纳
SELECTUPPER(F.TABLESPACENAME)“表空间名”,D.TOTGROOTTEMB“表空间大小(M)”,D.TOTGROOTTEMBF.TOTALBYTES“已使用空间(M)”,TO
在数据库重启前有条sql执行时间很长,重启后快了很多
回答 1
已采纳
提供这么一种思路:你数据库长时间没重启,buffercache里有碎片,重启前,这个表涉及的block频繁被flush出去。重启后碎片少了,这个表的block可以在buffercache里保持住了。
oracle 11g RAC crsctl status res -t 显示异常质询
回答 5
虽然和你的case不是完全匹配,但可以参考看看一下这个文章:ID1086563.1,估计也是一个bug之类的东西。http://blog.sina.com.cn/s/blog538285a701019
Oracle ASM NORMAL冗余,ocr与voting file磁盘组无法挂载
回答 1
虽然没做个这个试验,我觉得可以按这个思路去尝试一下放数据的磁盘组,应该就可以mount起来,OCR磁盘祖有一个特殊的地方,或者说是放votingfiles的磁盘祖有个特殊的地方,首先votingfil