![Oracle游标[you biao]大全.doc_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-2/27/e194b1a4-f634-4dba-a543-8bf161046865/e194b1a4-f634-4dba-a543-8bf1610468651.gif)
![Oracle游标[you biao]大全.doc_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-2/27/e194b1a4-f634-4dba-a543-8bf161046865/e194b1a4-f634-4dba-a543-8bf1610468652.gif)
![Oracle游标[you biao]大全.doc_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-2/27/e194b1a4-f634-4dba-a543-8bf161046865/e194b1a4-f634-4dba-a543-8bf1610468653.gif)
![Oracle游标[you biao]大全.doc_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-2/27/e194b1a4-f634-4dba-a543-8bf161046865/e194b1a4-f634-4dba-a543-8bf1610468654.gif)
![Oracle游标[you biao]大全.doc_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-2/27/e194b1a4-f634-4dba-a543-8bf161046865/e194b1a4-f634-4dba-a543-8bf1610468655.gif)
已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.Oracle游标you biao大全 SELECT语句yu ju用于yong yu从数据shu ju库shu ju ku中查询数据shu ju,当在PL/SQL中使用SELECT语句yu ju时,要与INTO子句zi ju一起使用,查询的返回值被赋予INTO子句zi ju中的变量bian liang,变量bian liang的声明sheng ming是在DELCARE中。SELECT INTO语法yu fa如下: SELECT DISTICT|ALL*|column,column,. INTO (variable,variable,. |record) FROM table|(sub-query)alias WHERE. PL/SQL中SELECT语句yu ju只返回一行数据shu ju。如果超过一行数据shu ju,那么就要使用显式xian shi游标you biao(对游标you biao的讨论我们将在后面进行),INTO子句zi ju中要有与SELECT子句zi ju中相同列数量的变量bian liang。INTO子句zi ju中也可以是记录变量bian liang。 %TYPE属性shu xing 在PL/SQL中可以将变量bian liang和常量chang liang声明sheng ming为内建或用户yong hu定义的数据shu ju类型lei xingshu ju lei xing,以引用yin yong一个列名,同时继承ji cheng他的数据shu ju类型lei xingshu ju lei xing和大小。这种动态dong tai赋值fu zhi方法fang fa是非常有用的,比如变量bian liang引用yin yong的列的数据shu ju类型lei xingshu ju lei xing和大小改变了,如果使用了%TYPE,那么用户yong hu就不必修改xiu gai代码dai ma,否则就必须修改xiu gai代码dai ma。 例: v_empno SCOTT.EMP.EMPNO%TYPE; v_salary EMP.SALARY%TYPE; 不但列名可以使用%TYPE,而且变量bian liang、游标you biao、记录,或声明sheng ming的常量chang liang都可以使用%TYPE。这对于定义相同数据shu ju类型lei xingshu ju lei xing的变量bian liang非常有用。 DELCARE V_A NUMBER(5):=10; V_B V_A%TYPE:=15; V_C V_A%TYPE; BEGIN DBMS_OUTPUT.PUT_LINE (V_A=|V_A|V_B=|V_B|V_C=|V_C); END SQL/ V_A=10 V_B=15 V_C= PL/SQL procedure successfully completed. SQL 其他DML语句yu ju 其它操作数cao zuo shu据的DML语句yu ju是:INSERT、UPDATE、DELETE和LOCK TABLE,这些语句yu ju在PL/SQL中的语法yu fa与在SQL中的语法yu fa相同。我们在前面已经讨论过DML语句yu ju的使用这里就不再重复了。在DML语句yu ju中可以使用任何在DECLARE部分声明sheng ming的变量bian liang,如果是嵌套qian tao块,那么要注意变量bian liang的作用zuo yong范围fan wei。 例: CREATE OR REPLACE PROCEDURE FIRE_EMPLOYEE (pempno in number) AS v_ename EMP.ENAME%TYPE; BEGIN SELECT ename INTO v_ename FROM emp WHERE empno=p_empno; INSERT INTO FORMER_EMP(EMPNO,ENAME) VALUES (p_empno,v_ename); DELETE FROM emp WHERE empno=p_empno; UPDATE former_emp SET date_deleted=SYSDATE WHERE empno=p_empno; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(Employee Number Not Found!); END DML语句yu ju的结果 当执行zhi hang一条DML语句yu ju后,DML语句yu ju的结果保存在四个游标you biao属性shu xing中,这些属性shu xing用于yong yu控制kong zhi程序流程或者了解程序的状态zhuang tai。当运行yun hangDML语句yu ju时,PL/SQL打开一个内建游标you biao并处理结果,游标you biao是维护wei hu查询结果的内存nei cun中的一个区域qu yu,游标you biao在运行yun hangDML语句yu ju时打开,完成后关闭。隐式yin shi游标you biao只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性shu xing.SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%ROWCOUNT是整数值。 SQL%FOUND和SQL%NOTFOUND 在执行zhi hang任何DML语句yu ju前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行zhi hangDML语句yu ju后,SQL%FOUND的属性shu xing值将是: . TRUE :INSERT . TRUE ELETE和UPDATE,至少有一行被DELETE或UPDATE. . TRUE :SELECT INTO至少返回一行 当SQL%FOUND为TRUE时,SQL%NOTFOUND为FALSE。 SQL%ROWCOUNT 在执行zhi hang任何DML语句yu ju之前,SQL%ROWCOUNT的值都是NULL,对于SELECT INTO语句yu ju,如果执行zhi hang成功,SQL%ROWCOUNT的值为1,如果没有成功,SQL%ROWCOUNT的值为0,同时产生一个异常yi changNO_DATA_FOUND. SQL%ISOPEN SQL%ISOPEN是一个布尔值,如果游标you biao打开,则为TRUE, 如果游标you biao关闭,则为FALSE.对于隐式yin shi游标you biao而言SQL%ISOPEN总是FALSE,这是因为隐式yin shi游标you biao在DML语句yu ju执行zhi hang时打开,结束时就立即关闭。 事务控制kong zhi语句yu jukong zhi yu ju 事务是一个工作的逻辑单元dan yuan可以包括一个或多个DML语句yu ju,事物控制kong zhi帮助用户yong hu保证数据shu ju的一致性yi zhi xing。如果事务控制kong zhi逻辑单元dan yuan中的任何一个DML语句yu ju失败,那么整个事务都将回滚,在PL/SQL中用户yong hu可以明确地使用COMMIT、ROLLBACK、SAVEPOINT以及SET TRANSACTION语句yu ju。 COMMIT语句yu ju终止事务,永久保存数据shu ju库shu ju ku的变化,同时释放shi fang所有LOCK,ROLLBACK终止现行事务释放shi fang所有LOCK,但不保存数据shu ju库shu ju ku的任何变化,SAVEPOINT用于yong yu设置she zhi中间点,当事务调用tiao yong过多的数据shu ju库shu ju ku操作时,中间点是非常有用的,SET TRANSACTION用于yong yu设置she zhi事务属性shu xing,比如read-write和隔离级ge li ji等。 显式xian shi游标you biao 当查询返回结果超过一行时,就需要一个显式xian shi游标you biao,此时用户yong hu不能使用select into语句yu ju。PL/SQL管理隐式yin shi游标you biao,当查询开始时隐式yin shi游标you biao打开,查询结束时隐式yin shi游标you biao自动关闭。显式xian shi游标you biao在PL/SQL块的声明sheng ming部分声明sheng ming,在执行zhi hang部分或异常yi chang处理yi chang chu li部分打开,取数据shu ju,关闭。 使用游标you biao 这里要做一个声明sheng ming,我们所说的游标you biao通常是指显式xian shi游标you biao,因此从现在起没有特别指明的情况qing kuang,我们所说的游标you biao都是指显式xian shi游标you biao。要在程序中使用游标you biao,必须首先声明sheng ming游标you biao。 声明sheng ming游标you biao 语法yu fa: CURSOR cursor_name IS select_statement; 在PL/SQL中游标you biao名是一个未声明sheng ming变量bian liang,不能给游标you biao名赋值fu zhi或用于yong yu表达式biao da shi中。 例: DELCARE CURSOR C_EMP IS SELECT empno,ename,salary FROM emp WHERE salary2000 ORDER BY ename; . BEGIN 在游标you biao定义中SELECT语句yu ju中不一定非要表可以是视图shi tu,也可以从多个表或视图shi tu中选择xuan ze的列,甚至可以使用*来选择xuan ze所有的列 。 打开游标you biao 使用游标you biao中的值之前应该首先打开游标you biao,打开游标you biao初始化chu shi hua查询处理。打开游标you biao的语法yu fa是: OPEN cursor_name cursor_name是在声明sheng ming部分定义的游标you biao名。 例: OPEN C_EMP; 关闭游标you biao 语法yu fa: CLOSE cursor_name 例: CLOSE C_EMP; 从游标you biao提取ti qu数据shu ju 从游标you biao得到一行数据shu ju使用FETCH命令ming ling。每一次提取ti qu数据shu ju后,游标you biao都指向zhi xiang结果集的下一行。语法yu fa如下: FETCH cursor_name INTO variable,variable,. 对于SELECT定义的游标you biao的每一列,FETCH变量bian liang列表lie biao都应该有一个变量bian liang与之相对应,变量bian liang的类型lei xing也要相同。 例: SET SERVERIUTPUT ON DECLARE v_ename EMP.ENAME%TYPE; v_salary EMP.SALARY%TYPE; CURSOR c_emp IS SELECT ename,salary FROM emp; BEGIN OPEN c_emp; FETCH c_emp INTO v_ename,v_salary; DBMS_OUTPUT.PUT_LINE(Salary of Employee| v_ename |is| v_salary); FETCH c_emp INTO v_ename,v_salary; DBMS_OUTPUT.PUT_LINE(Salary of Employee| v_ename |is| v_salary); FETCH c_emp INTO v_ename,v_salary; DBMS_OUTPUT.PUT_LINE(Salary of Employee| v_ename |is| v_salary); CLOSE c_emp; END 这段代码dai ma无疑是非常麻烦的,如果有多行返回结果,可以使用循环xun huan并用游标you biao属性shu xing为结束循环xun huan的条件tiao jian,以这种方式提取ti qu数据shu ju,程序的可读性和简洁性jian jie xing都大为提高,下面我们使用循环xun huan重新写上面的程序: SET SERVERIUTPUT ON DECLARE v_ename EMP.ENAME%TYPE; v_salary EMP.SALARY%TYPE; CURSOR c_emp IS SELECT ename,salary FROM emp; BEGIN OPEN c_emp; LOOP FETCH c_emp INTO v_ename,v_salary; EXIT WHEN c_emp%NOTFOUND; DBMS_OUTPUT.PUT_LINE(Salary of Employee| v_ename |is| v_salary); END 记录变量bian liang 定义一个记录变量bian liang使用TYPE命令ming ling和%ROWTYPE,关于%ROWsTYPE的更多信息xin xi请参阅相关资料。 记录变量bian liang用于yong yu从游标you biao中提取ti qu数据shu ju行,当游标you biao选择xuan ze很多列的时候,那么使用记录比为每列声明sheng ming一个变量bian liang要方便得多。 当在表上使用%ROWTYPE并将从游标you biao中取出的值放入记录中时,如果要选择xuan ze表中所有列,那么在SELECT子句zi ju中使用*比将所有列名列出来要安全得多。 例: SET SERVERIUTPUT ON DECLARE R_emp EMP%ROWTYPE; CURSOR c_emp IS SELECT * FROM emp; BEGIN OPEN c_emp; LOOP FETCH c_emp INTO r_emp; EXIT WHEN c_emp%NOTFOUND; DBMS_OUT.PUT.PUT_LINE(Salary of Employee|r_emp.ename|is| r_emp.salary); END LOOP; CLOSE c_emp; END; %ROWTYPE也可以用游标you biao名来定义,这样的话就必须要首先声明sheng ming游标you biao: SET SERVERIUTPUT ON DECLARE CURSOR c_emp IS SELECT ename,salary FROM emp; R_emp c_emp%ROWTYPE; BEGIN OPEN c_emp; LOOP FETCH c_emp INTO r_emp; EXIT WHEN c_emp%NOTFOUND; DBMS_OUT.PUT.PUT_LINE(Salary of Employee|r_emp.ename|is| r_emp.salary); END LOOP; CLOSE c_emp; END; 带参数can shu的游标you biao 与存储过程cun chu guo cheng和函数han shu相似xiang shi,可以将参数can shu传递can shu chuan di给游标you biao并在查询中使用。这对于处理在某种条件tiao jian下打开游标you biao的情况qing kuang非常有用。它的语法yu fa如下: CURSOR cursor_name(parameter,parameter,.) IS select_statement; 定义参数can shu的语法yu fa如下: Parameter_name IN data_type:=|DEFAULT value 与存储过程cun chu guo cheng不同的是,游标you biao只能接受传递的值,而不能返回值。参数can shu只定义数据shu ju类型lei xingshu ju lei xingding yi shu ju lei xing,没有大小。 另外可以给参数can shu设定一个缺省值,当没有参数can shu值传递给游标you biao时,就使用缺省值。游标you biao中定义的参数can shu只是一个占位符,在别处引用yin yong该参数can shu不一定可靠。 在打开游标you biao时给参数can shu赋值fu zhi,语法yu fa如下: OPEN cursor_namevalue,value.; 参数can shu值可以是文字wen zi或变量bian liang。 例: DECALRE CURSOR c_dept IS SELECT * FROM dept ORDER BY deptno; CURSOR c_emp (p_dept VARACHAR2) IS SELECT ename,salary FROM emp WHERE deptno=p_dept ORDER BY ename r_dept DEPT%ROWTYPE; v_ename EMP.ENAME%TYPE; v_salary EMP.SALARY%TYPE; v_tot_salary EMP.SALARY%TYPE; BEGIN OPEN c_dept; LOOP FETCH c_dept INTO r_dept; EXIT WHEN c_dept%NOTFOUND; DBMS_OUTPUT.PUT_LINE(Department:| r_dept.deptno|-|r_dept.dname); v_tot_salary:=0; OPEN c_emp(r_dept.deptno); LOOP FETCH c_emp INTO v_ename,v_salary; EXIT WHEN c_emp%NOTFOUND; DBMS_OUTPUT.PUT_LINE(Name:| v_ename| salary:|v_salary); v_tot_salary:=v_tot_salary+v_salary; END LOOP; CLOSE c_emp; DBMS_OUTPUT.PUT_LINE(Toltal Salary for dept:| v_tot_salary); END LOOP; CLOSE c_dept; END; 游标you biaoFOR循环xun huan 在大多数时候我们在设计程序的时候都遵循下面的步骤: 1、打开游标you biao 2、开始循环xun huan 3、从游标you biao中取值 4、检查那一行被返回 5、处理 6、关闭循环xun huan 7、关闭游标you biao 可以简单的把这一类代码dai ma称为游标you biao用于yong yu循环xun huan。但还有一种循环xun huan与这种类型lei xing不相同,这就是FOR循环xun huan,用于yong yuFOR循环xun huan的游标you biao按照正常的声明sheng ming方式声明sheng ming,它的优点在于不需要显式xian shi的xian shi de打开、关闭、取数据shu ju,测试数据shu juce shi shu ju的存在、定义存放数据shu ju的变量bian liang等等。游标you biaoFOR循环xun huan的语法yu fa如下: FOR record_name IN (corsor_name(parameter,parameter.) | (query_difinition) LOOP statements END LOOP; 下面我们用for循环xun huan重写zhong xie上面的例子: DECALRE CURSOR c_dept IS SELECT deptno,dname FROM dept ORDER BY deptno; CURSOR c_emp (p_dept VARACHAR2) IS SELECT ename,salary FROM emp WHERE deptno=p_dept ORDER BY ename v_tot_salary EMP.SALARY%TYPE; BEGIN FOR r_dept IN c_dept LOOP DBMS_OUTPUT.PUT_LINE(Department:| r_dept.deptno|-|r_dept.dname); v_tot_salary:=0; FOR r_emp IN c_emp(r_dept.deptno) LOOP DBMS_OUTPUT.PUT_LINE(Name: | v_ename | salary: | v_salary); v_tot_salary:=v_tot_salary+v_salary; END LOOP; DBMS_OUTPUT.PUT_LINE(Toltal Salary for dept:| v_tot_salary); END LOOP; END; 在游标you biaoFOR循环xun huan中使用查询 在游标you biaoFOR循环xun huan中可以定义查询,由于没有显式xian shi声明sheng ming所以游标you biao没有名字,记录名通过游标you biao查询来定义。 DECALRE v_tot_salary EMP.SALARY%TYPE; BEGIN FOR r_dept IN (SELECT deptno,dname FROM dept ORDER BY deptno) LOOP DBMS_OUTPUT.PUT_LINE(Department:| r_dept.deptno|-|r_dept.dname); v_tot_salary:=0; FOR r_emp IN (SELECT ename,salary FROM emp WHERE deptno=p_dept ORDER BY ename) LOOP DBMS_OUTPUT.PUT_LINE(Name:| v_ename| salary:|v_salary); v_tot_salary:=v_tot_salary+v_salary; END LOOP; DBMS_OUTPUT.PUT_LINE(Toltal Salary for dept:| v_tot_salary); END LOOP; END; 游标you biao中的子查询 语法yu fa如下: CURSOR C1 IS SELECT * FROM emp WHERE deptno NOT IN (SELECT deptno FROM dept WHERE dname!=ACCOUNTING); 可以看出与SQL中的子查询没有什么区别。 游标you biao中的更新和删除shan chu 在PL/SQL中依然可以使用UPDATE和DELETE语句yu ju更新或删除shan chu数据shu ju行。显式xian shi游标you biao只有在需要获得多行数据shu ju的情况qing kuang下使用。PL/SQL提供了仅仅使用游标you biao就可以执行zhi hang删除shan chu或更新记录的方法fang fa。 UPDATE或DELETE语句yu ju中的WHERE CURRENT OF子串zi chuan专门处理要执行zhi hangUPDATE或DELETE操作的表中取出的最近的数据shu ju。要使用这个方法fang fa,在声明sheng ming游标you biao时必须使用FOR UPDATE子串zi chuan,当对话使用FOR UPDATE子串zi chuan打开一个游标you biao时,所有返回集中的数据shu ju行都将处于行级(ROW-LEVEL)独占式锁定suo ding,其他对象dui xiang只能查询这些数据shu ju行,不能进行UPDATE、DELETE或SELECT.FOR UPDATE操作。 语法yu fa: FOR UPDATE OF schema.table.column,schema.table.column. nowait 在多表查询中,使用OF子句zi ju来锁定suo ding特定的表,如果忽略了OF子句zi ju,那么所有表中选择xuan ze的数据shu ju行都将被锁定suo ding。如果这些数据shu ju行已经被其他会话hui hua锁定suo ding,那么正常情况qing kuang下ORACLE将等待deng dai,直到数据shu ju行解锁jie suo。 在UPDATE和DELETE中使用WHERE CURRENT OF子串zi chuan的语法yu fa如下: WHERECURRENT OF cursor_name|search_condition 例: DELCARE CURSOR c1 IS SELECT empno,salary FROM emp WHERE comm IS NULL FOR UPDATE OF comm; v_comm NUMBER(10,2); BEGIN FOR r1 IN c1 LOOP IF r1.salary500 THEN v_comm:=r1.salary*0.25; ELSEIF r1.salary1000 THEN v_comm:=r1.salary*0.20; ELSEIF r1.salary3000 THEN v_comm:=r1.salary*0.15; ELSE v_comm:=r1.salary*0.12; END IF; UPDATE emp; SET comm=v_comm WHERE CURRENT OF c1l; END LOOP; END2.分析Oracle日志ri zhi文件wen jian作为Oracle DBA,我们有时候需要追踪数据shu ju误删除shan chu或用户yong hu的恶意操作情况qing kuang,此时我们不仅需要查出执行zhi hang这些操作的数据shu ju库shu ju ku账号zhang hao,还需要知道操作是由哪台客户ke hu端(IP地址di zhi等)发出的。针对这些问题wen ti,一个最有效you xiao实用而又低成本的方法fang fa就是分析Oracle数据shu ju库shu ju ku的日志ri zhi文件wen jian。本文将就Oracle日志ri zhi分析技术做深入探讨。 一、如何分析即LogMiner解释jie shi 从目前来看,分析Oracle日志ri zhi的唯一方法fang fa就是使用Oracle公司提供的LogMiner来进行, Oracle数据shu ju库shu ju ku的所有更改都记录在日志ri zhi中,但是原始的日志ri zhi信息xin xi我们根本无法看懂,而LogMiner就是让我们看懂日志ri zhi信息xin xi的工具。从这一点上看,它和tkprof差不多,一个是用来分析日志ri zhi信息xin xi,一个则是格式化ge shi hua跟踪gen zong文件wen jian。通过对日志ri zhi的分析我们可以实现下面的目的: 1、查明数据shu ju库shu ju ku的逻辑更改; 2、侦察并更正用户yong hu的误操作; 3、执行zhi hang事后审计shen ji; 4、执行zhi hang变化分析。 不仅如此,日志ri zhi中记录的信息xin xi还包括:数据shu ju库shu ju ku的更改历史、更改类型lei xing(INSERT、UPDATE、DELETE、DDL等)、更改对应的SCN号、以及执行zhi hang这些操作的用户yong hu信息xin xi等,LogMiner在分析日志ri zhi时,将重构zhong gou等价的SQL语句yu ju和UNDO语句yu ju(分别记录在V$LOGMNR_CONTENTS视图shi tu的SQL_REDO和SQL_UNDO中)。这里需要注意的是等价语句yu ju,而并非原始SQL语句yu ju,例如:我们最初执行zhi hang的是“delete a where c1 cyx;”,而LogMiner重构zhong gou的是等价的6条DELETE语句yu ju。所以我们应该意识yi shi到V$LOGMNR_CONTENTS视图shi tu中显示xian shi的并非是原版的现实,从数据shu ju库shu ju ku角度来讲这是很容易理解的,它记录的是元操作,因为同样是“delete a where c1 cyx;”语句yu ju,在不同的环境中,实际删除shan chu的记录数可能各不相同,因此记录这样的语句yu ju实际上并没有什么实际意义,LogMiner重构zhong gou的是在实际情况qing kuang下转化成元操作的多个单条语句yu ju。 另外由于Oracle重做zhong zuo日志ri zhi中记录的并非原始的对象dui xiang(如表以及其中的列)名称,而只是它们在Oracle数据shu ju库shu ju ku中的内部编号(对于表来说是它们在数据shu ju库shu ju ku中的对象dui xiangID,而对于表中的列来说,对应的则是该列在表中的排列pai lie序号:COL 1, COL 2 等),因此为了使LogMiner重构zhong gou出的SQL语句yu ju易于识别shi bie,我们需要将这些编号转化成相应的名称,这就需要用到数据shu ju字典shu ju zi dian(也就说LogMiner本身是可以不用数据shu ju字典shu ju zi dian的,详见下面的分析过程),LogMiner利用DBMS_LOGMNR_D.BUILD()过程来提取ti qu数据shu ju字典shu ju zi dian信息xin xi。 LogMiner包含两个PL/SQL包和几个视图shi tu: 1、dbms_logmnr_d包,这个包只包括一个用于yong yu提取ti qu数据shu ju字典shu ju zi dian信息xin xi的过程,即dbms_logmnr_d.build()过程。 2、dbms_logmnr包,它有三个过程: add_logfile(name varchar2, options number) - 用来添加/删除shan chu用于yong yu分析的日志ri zhi文件wen jian; start_logmnr(start_scn number, end_scn number, start_time number,end_time number, dictfilename varchar2, options number) - 用来开启日志ri zhi分析,同时确定分析的时间/SCN窗口chuang kou以及确认que ren是否使用提取ti qu出来的数据shu ju字典shu ju zi dian信息xin xi。 end_logmnr() - 用来终止分析会话hui hua,它将回收LogMiner所占用的内存nei cun。 与LogMiner相关的数据shu ju字典shu ju zi dian。 1、v$logmnr_dictionary,LogMiner可能使用的数据shu ju字典shu ju zi dian信息xin xi,因logmnr可以有多个字典文件wen jian,该视图shi tu用于yong yu显示xian shi这方面信息xin xi。 2、v$logmnr_parameters,当前LogMiner所设定的参数can shu信息xin xi。 3、v$logmnr_logs,当前用于yong yu分析的日志ri zhi列表lie biao。 4、v$logmnr_contents,日志ri zhi分析结果。 二、Oracle9i LogMiner的增强zeng qiang: 1、支持zhi chi更多数据shu juduo shu ju/存储类型lei xing:链接lian jie/迁移行、CLUSTER表操作、DIRECT PATH插入以及DDL操作。在V$LOGMNR_CONTENTS的SQL_REDO中可以看到DDL操作的原句(CREATE USER除外,其中的密码mi ma将以加密jia mi的形式出现,而不是原始密码mi ma)。如果TX_AUDITING初始化chu shi hua参数can shu设为TRUE,则所有操作的数据shu ju库shu ju ku账号zhang hao将被记录。 2、提取ti qu和使用数据shu ju字典shu ju zi dian的选项xuan xiang:现在数据shu ju字典shu ju zi dian不仅可以提取ti qu到一个外部文件wen jian中,还可以直接提取ti qu到重做zhong zuo日志ri zhi流中,它在日志ri zhi流中提供了操作当时的数据shu ju字典shu ju zi dian快照kuai zhao,这样就可以实现离线li xian分析。 3、允许对DML操作按事务进行分组:可以在START_LOGMNR()中设置she zhiCOMMITTED_DATA_ONLY选项xuan xiang,实现对DML操作的分组,这样将按SCN的顺序返回已经提交ti jiao的事务。 4、支持zhi chiSCHEMA的变化:在数据shu ju库shu ju ku打开的状态zhuang tai下,如果使用了LogMiner的DDL_DICT_TRACKING选项xuan xiang,Oracle9i的LogMiner将自动对比最初的日志ri zhi流和当前系统xi tong的数据shu ju字典shu ju zi dian,并返回正确的DDL语句yu ju,并且会自动侦察并标记biao ji当前数据shu ju字典shu ju zi dian和最初日志ri zhi流之间的差别,这样即使最初日志ri zhi流中所涉及的表已经被更改或者根本已经不存在,LogMiner同样会返回正确的DDL语句yu ju。 5、在日志ri zhi中记录更多列信息xin xi的能力neng li:例如对于UPDATE操作不仅会记录被更新行的情况qing kuang,还可以捕捉更多前影信息xin xi。 6、支持zhi chi基于数值的查询:Oracle9i LogMiner在支持zhi chi原有基于元数据shu juyuan shu ju(操作、对象dui xiang等)查询的基础上,开始支持zhi chi基于实际涉及到的数据shu ju的查询。例如涉及一个工资表,现在我们可以很容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康促进县汇报
- 二级甲等中医院建设发展汇报材料
- CVC置管护理留置时间
- 人力年度工作总结
- 大学生就业观调查汇报
- 体育教学工作总结
- 消防安全培训与足浴课件
- 患者进入病区的初步护理
- PMC计划部年终总结报告
- 汽车制造年终工作总结
- 计量经济学知到智慧树章节测试课后答案2024年秋安徽农业大学
- 《西方的文官制度》教学设计
- 食管纵隔瘘护理
- 外研版九年级英语上册单元模块满分必刷题 Module 1 【刷中考】(广东专用)(含答案)
- 华为ICT大赛网络赛道考试题库(786题)
- 新能源汽车检测与维修专业调研报告
- 2024年保安员证考试题库及答案(共240题)
- 2018低压电力线高速载波通信互联互通技术规范第3部分:检验方法
- 超声科医院感染管理:培训与演练
- 养老院餐饮供应服务行业发展全景调研与投资趋势预测研究报告
- 《学会聆听(第一课时)》教学课件
评论
0/150
提交评论