事务与锁定-查看事务的信息

/*
drop table  emp; if exists?
create table emp(
	empid number(5),
	empname varchar2(100),
	empage number(5)
);
*/
--该语句执行的前提是当前用户具备DBA权限,否则会报错误:
/*
第 10 行出现错误:
ORA-00942: 表或视图不存在
解决:
使用SYSDBA角色的用户登录ORACLE执行
GRANT DBA TO XAXNB;
使用XAXNB重新登录ORACLE
*/
--开始一个事务
INSERT INTO EMP VALUES(1,'CHENZW',27);
--查看该事务
col name format A20;
set linesize 200;
select
	addr,         --RAW(4|8)       事务状态对象的地址
	start_time,   --VARCHAR2(20)   事务的开始时间
	status,       --VARCHAR2(16)   事务的状态
	name,         --VARCHAR2(256)  事务的名称
	log_io,       --NUMBER         逻辑I/O操作数量
	phy_io,       --NUMBER         物理I/O操作数量
	used_ublk,    --NUMBER         回滚时使用的撤销块的数量
	ses_addr      --RAW(4|8)       用户会话对象的地址,与V$SESSION中的SADDR相关联,可以获取事务中的用户会话信息。
from v$transaction;

--实例程序执行的结果如下:

SQL> INSERT INTO EMP VALUES(1,'CHENZW',27);

已创建 1 行。

SQL> --查看该事务
SQL> col name format A20;
SQL> set linesize 200;
SQL> select
  2   addr,         --RAW(4|8)       事务状态对象的地址
  3   start_time,   --VARCHAR2(20)   事务的开始时间
  4   status,       --VARCHAR2(16)   事务的状态
  5   name,         --VARCHAR2(256)  事务的名称
  6   log_io,       --NUMBER         逻辑I/O操作数量
  7   phy_io,       --NUMBER         物理I/O操作数量
  8   used_ublk,    --NUMBER         回滚时使用的撤销块的数量
  9   ses_addr      --RAW(4|8)       用户会话对象的地址,与V$SESSION中的SADDR相关联,可以获取事务中
的用户会话信息。
 10  from v$transaction;

ADDR     START_TIME           STATUS           NAME                     LOG_IO     PHY_IO  USED_UBLK SES_ADDR
-------- -------------------- ---------------- -------------------- ---------- ---------- ----------
30FC7F44 04/17/11 13:52:57    ACTIVE                                        30          0          1 31F30064



/*
该事务是没有名字的,可以看到上面的NAME是空的,可以通过SET TRANSACTION NAME  来对事务进行命名
*/

你可能感兴趣的:(事务)