小议Oracle 11g的自治事务(六)(3)

日期: 2008-08-11 作者:杨廷琨 来源:TechTarget中国 英文

下面修改两个存储过程: 







SQL> create OR REPLACE PROCEDURE P_TEST AS 
  2 BEGIN 
  3 FOR I IN 1..10000 LOOP 
  4 insert INTO T_RECORD VALUES (1, ’TEST’); 
  5 END LOOP; 
  6 COMMIT; 
  7 END; 
  8 / 

  过程已创建。 







SQL> create OR REPLACE PROCEDURE P_TEST_AUTO AS 
  2 PRAGMA AUTONOMOUS_TRANSACTION; 
  3 BEGIN 
  4 FOR I IN 1..10000 LOOP 
  5 insert INTO T_RECORD VALUES (2, ’TEST’); 
  6 END LOOP; 
  7 COMMIT; 
  8 END; 
  9 / 

  过程已创建。






SQL> &#101xec P_TEST 

  PL/SQL 过程已成功完成。







SQL> &#101xec P_TEST_AUTO 

  PL/SQL 过程已成功完成。







SQL> truncate TABLE T_SESSION_STAT; 

  表被截断。







SQL> delete T_RECORD; 

  已删除20000行。







SQL> COMMIT; 

  提交完成。 






SQL> BEGIN 
  2 
  3 insert INTO T_SESSION_STAT select 1, NAME, VALUE 
  4 FROM V$SESSTAT A, V$STATNAME B 
  5 where A.STATISTIC# = B.STATISTIC# 
  6 AND A.SID = (select SID FROM V$MYSTAT where ROWNUM = 1); 
  7 
  8 P_TEST; 
  9 
  10 insert INTO T_SESSION_STAT select 2, NAME, VALUE 
  11 FROM V$SESSTAT A, V$STATNAME B 
  12 where A.STATISTIC# = B.STATISTIC# 
  13 AND A.SID = (select SID FROM V$MYSTAT where ROWNUM = 1); 
  14 
  15 P_TEST_AUTO; 
  16 
  17 insert INTO T_SESSION_STAT select 3, NAME, VALUE 
  18 FROM V$SESSTAT A, V$STATNAME B 
  19 where A.STATISTIC# = B.STATISTIC# 
  20 AND A.SID = (select SID FROM V$MYSTAT where ROWNUM = 1); 
  21 
  22 FOR C IN 
  23 ( 
  24 select * 
  25 FROM 
  26 ( 
  27 select A.NAME, C.VALUE + A.VALUE – 2 * B.VALUE VALUE 
  28 FROM 
  29 T_SESSION_STAT A, 
  30 T_SESSION_STAT B, 
  31 T_SESSION_STAT C 
  32 where A.NAME = B.NAME 
  33 AND A.NAME = C.NAME 
  34 AND A.ID = 1 
  35 AND B.ID = 2 
  36 AND C.ID = 3 
  37 ) 
  38 where ABS(VALUE) > 0 
  39 ) LOOP 
  40 DBMS_OUTPUT.PUT_LINE(RPAD(C.NAME, 50, ’ ’) || C.VALUE); 
  41 END LOOP; 
  42 
  43 END; 
  44 / 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐