ORACLE 未提交事务与语句查询

在Oracle数据库中,未提交的事务可能影响到查询结果。通过示例展示了如何在SQL*Plus环境中插入一条记录但不提交,并在另一个会话中查询到这个未提交的事务状态,揭示了事务管理和并发查询的原理。


插入一条记录,不提交


sys@EDIPD> select sid from v$mystat where rownum<=1;

       SID
----------
       771


sys@EDIPD> insert into edi.master_trackingno_table(ID,CARRIER_ID,TRACKING_NO,STATUS) values (edi.MASTER_TRACKINGNO_TABLE_SEQ.nextval,'1','11083229377990','1');

1 row created.

Elapsed: 00:00:00.01


窗口二查询未提交事务与语句

sys@EDIPD> select  s.sid, s.serial#, s.username,s.osuser, s.program, s.event, to_char(s.LOGON_TIME,'yyyymmdd-hh24:mi:ss') ,to_char(t.START_DATE,'yyyymmdd-hh24:mi:ss'),s.last_call_et as last_ct,s.BLOCKING_SESSION  block_sess, s.status, (select q.SQL_TEXT from  v$sql q where q.LAST_ACTIVE_TIME=t.START_DATE and rownum<=1) as SQL_TEXT  
from v$session s, v$transaction t 

where s.sADDR = t.SES_ADDR ;


   SID SERIAL# USERNAME   OSUSER     PROGRAM                         EVENT                        TO_CHAR(S.LOGON_T TO_CHAR(T.START_D    LAST_CT BLOCK_SESS STATUS
------ ------- ---------- ---------- ------------------------------- ---------------------------- ----------------- ----------------- ---------- ---------- ---------
SQL_TEXT
----------------------------------------------------------------------------------------------------
   771   63711 SYS        oracle     sqlplus@cnedidp1 (TNS V1-V3)    SQL*Net message from client  20151102-17:07:22 20151102-17:35:51         19            INACTIVE
insert into edi.master_trackingno_table(ID,CARRIER_ID,TRACKING_NO,STATUS) values (edi.MASTER_TRACKIN
GNO_TABLE_SEQ.nextval,'1','11083229377990','1')

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值