首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

请问一个关于UPDATE执行结果的有关问题

2012-04-12 
请教一个关于UPDATE执行结果的问题请问有没有办法可以取得UPDATE语句的执行时间和执行行数?就是在PL/SQL里

请教一个关于UPDATE执行结果的问题
请问有没有办法可以取得UPDATE语句的执行时间和执行行数?

就是在PL/SQL里的SQLWINDOW里执行完UPDATE语句后显示的执行时间和执行行数,我想捕获这两个值传入变量。



[解决办法]

探讨
请问有没有办法可以取得UPDATE语句的执行时间和执行行数?

[解决办法]
1 你可以用sqlplus 命令 set timing on 。不过这个只能给人看看,我不知道能不能获取到。
但 按照兰兰姐那中思路,lz你写两个触发器(before,after)是一定可以获取的;
2 通过隐式游标的属性获得

相关的测试如下:
SQL code
SQL> ed已写入 file afiedt.buf  1  CREATE TABLE test AS  2* SELECT * FROM empSQL> /表已创建。SQL> select * from test;     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM    DEPTNO---------- ---------- --------- ---------- -------------- ---------- --------------------      7369 SMITH      CLERK           7902 17-12月-80            800        20      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300        30      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500        30      7566 JONES      MANAGER         7839 02-4月 -81           2975        20      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400        30      7698 BLAKE      MANAGER         7839 01-5月 -81           2850        30      7782 CLARK      MANAGER         7839 09-6月 -81           2450        10      7839 KING       PRESIDENT            17-11月-81           5000        10      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0        30      7900 JAMES      CLERK           7698 03-12月-81            950        30      7902 FORD       ANALYST         7566 03-12月-81           3000        20      7934 MILLER     CLERK           7782 23-1月 -82           1300        10已选择12行。SQL> set timing onSQL> select * from emp;     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM    DEPTNO---------- ---------- --------- ---------- -------------- ---------- --------------------      7369 SMITH      CLERK           7902 17-12月-80            800        20      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300        30      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500        30      7566 JONES      MANAGER         7839 02-4月 -81           2975        20      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400        30      7698 BLAKE      MANAGER         7839 01-5月 -81           2850        30      7782 CLARK      MANAGER         7839 09-6月 -81           2450        10      7839 KING       PRESIDENT            17-11月-81           5000        10      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0        30      7900 JAMES      CLERK           7698 03-12月-81            950        30      7902 FORD       ANALYST         7566 03-12月-81           3000        20      7934 MILLER     CLERK           7782 23-1月 -82           1300        10已选择12行。已用时间:  00: 00: 00.03SQL> update test set ename = 'Kingking' where ename ='KING';已更新 1 行。已用时间:  00: 00: 00.04SQL> ed已写入 file afiedt.buf  1  begin  2     UPDATE test SET ename = 'KING' WHERE ename='Kingking';  3     if(SQL%ROWCOUNT>0) then  4     dbms_output.put_line(to_char(SQL%rowcount));  5     END if;  6* end;SQL> /1PL/SQL 过程已成功完成。已用时间:  00: 00: 00.00SQL>
[解决办法]
探讨

1 你可以用sqlplus 命令 set timing on 。不过这个只能给人看看,我不知道能不能获取到。
但 按照兰兰姐那中思路,lz你写两个触发器(before,after)是一定可以获取的;
2 通过隐式游标的属性获得

相关的测试如下:
SQL code
SQL> ed
已写入 file afiedt.buf

1 CREATE TABLE test AS
……

热点排行