oracle怎么捕获表上的DML语句(不包括select)语句)
可以采用dml触发器,如
CREATE OR REPLACE TRIGGER tr_capt_sql
BEFORE DELETE OR INSERT OR UPDATE
ON manager.test
DECLARE
sql_text ora_name_list_t;
state_sql capt$sql.sql_text%TYPE;
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql || sql_text(i);
END LOOP;
INSERT INTO capt$sql(login_user,capt_time,ip_address,audsid,owner,table_name,sql_text)
VALUES(ora_login_user,sysdate,sys_context('USERENV','IP_ADDRESS'),
userenv('SESSIONID'),'MANAGER','TEST',state_sql);
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Capture DML Exception:'||SQLERRM);
END tr_capt_sql;
在创建以上触发器时要注意几点
1、必须创建一个capt$sql的表,用来记录ddl的记录
2、sp_write_log原本是一个写日志的过程,可以置换为自己的需要,如null跳过。
转载于:https://www.cnblogs.com/fanweisheng/p/11113426.html
oracle怎么捕获表上的DML语句(不包括select)语句)相关推荐
- 在mysql中更新数据sql语句怎么写_在MySQL中,更新数据库表记录的SQL语句,包括______语句...
在MySQL中,更新数据库表记录的SQL语句,包括______语句 答:insert replace update delete 在域F中,设其特征为2,对于任意a,b∈F,则(a+b)2 等于多少 ...
- 将insert语句转化为select语句,进行校验,验证是否插入成功
前言 公司的测试和运维不太懂sql,每次将sql文件交给他们到测试或者生产数据库中执行sql的时候,他们都是全部执行,不看是否执行成功.因此,就会导致有些insert语句没有执行成功,等到功能验证 ...
- SQL语句--INSERT INTO SELECT 语句用法示例
通过 SQL,您可以从一个表复制信息到另一个表. INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中. SQL INSERT INTO SELECT 语句 I ...
- SELECT语句定义和Select语句完整的执行顺序
SELECT语句定义: 一个完成的SELECT语句包含可选的几个子句.SELECT语句的定义如下:<SELECT clause> [<FROM clause>] [<WH ...
- oracle数据库查表_oracle数据库常用的99条查询语句
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...
- Oracle生成指定表的列名,并前后添加select from
表的列名比较多的时候,手工一个个的写列名比较麻烦,这个函数可以让人偷偷懒 create or replace function f_GetCols(p_TableName in varchar2/*获 ...
- php的select case语句,调用不同SELECT语句的MySQL IF / CASE语法
我在使用MySQL的IF或CASE语法时遇到问题 该过程如下所示: 我有一个PHP项目调用MySQL查询,比方说PHP传递了变量X. 如果X不为0,则它应该执行类似以下的查询: SELECT * ...
- Oracle 动态游标 PL/SQL 动态SQL语句 open for [using] 语句
PL/SQL:open for [using] 语句 2017年07月19日 09:52:55 学孩儿无牙哭做粥 阅读数:681 标签: oracleSQLPLSQL 更多 个人分类: ORACLES ...
- mysql查询一个表有哪些索引_如何查看某张数据库表上都有哪些索引(转)
索引使用简介 一. 关于索引的知识 要写出运行效率高的sql,需要对索引的机制有一定了解,下面对索引的基本知识做一介绍. 1. 索引的优点和局限 索引可以提高查询的效率,但会降低dml操作的效率. 所 ...
最新文章
- python下载了怎么打开-下载python后如何启动
- C# Marshal类基本概念和入门示例程序
- CentOs下php连mssql并配置unixODBC
- InetAddress.getLocalHost()详解及异常处理
- 美丽的数学家:如果您讨厌数学,这些其实都是人生故事
- Visual Studio 2010旗舰版正式版序列号 - civilman的专栏 - 博客频道 - CSDN.NET
- 洛谷 2312 / bzoj 3751 解方程——取模
- ToB销售的成交,需要客户对供应商有三个信任
- [纯技术讨论]从12306谈海量事务高速处理系统
- linux下实现getch()函数的功能,linux下有没有和windows下的getch函数功能基本一样的函数?...
- java word转pdf 在linux转pdf乱码解决方法
- 论Web App、Hybrid App、Native App三类主流APP设计差异
- UVALive - 4487 HDU3234 UVA12232 【带权并查集】 非常好的一道题!!!
- 信号转换 | 如何将正弦波转换成方波?
- 2019年那些成年人的崩溃瞬间,看着看着就哭了
- 数据库实验三 存储过程与触发器
- python 2048游戏的设计_Python练习:100行代码实现一个简易的2048游戏
- ES5和ES6的类,静态方法,继承实现代码
- Idea打字变成繁体
- 李开复致中国大学生父母的一封信
热门文章
- 【分布式共识二】拜占庭将军问题----口头协议
- 总结】Android辅助功能(一)-AccessibilityEvent的分发
- Thymeleaf contextPath(无废话)
- 两个list关联合并_算法分享---两个有序链表的合并(C语言)
- JZOJ 5376. 【NOIP2017提高A组模拟9.19】Candy
- 扫地机器人粘住老鼠板怎么办_家里老鼠的危害性及如何有效灭鼠
- 租赁mt4虚拟服务器,mt4服务器出租
- java同名类_java两个不同名类 在里面建立两个同名的类 怎么破
- js下拉 selenium_如何使用Python / Selenium webdriver处理Angularjs / Javascript下拉列表?
- 腾讯2019暑期实习生提前批CV岗笔试题