大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
查看oracle是不是有未提交的事务
成都网站建设哪家好,找创新互联公司!专注于网页设计、网站建设公司、微信开发、小程序设计、集团成都定制网站等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都航空箱等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞许!
select SQL_TEXT from v$sql,v$transaction where LAST_ACTIVE_TIME=START_DATE;
查询回滚事务的用户 oracle
通过V$TRANSACTION该事务的addr(假设为 3A3DA9B4 ),
然后select * from v$session where taddr='3A3DA9B4',
看能不能查到你所需要的信息:包括sql语句,用户名,机器名等
oracle 支持分布式事务 但好像没有单独的组件 dba_registry里面没有相关记录
SQL select comp_name,version,status from dba_registry;
COMP_NAME VERSION STATUS
-------------------------------------------------- ------------------------------ --------------------------------------------
OWB 11.2.0.4.0 VALID
Oracle Application Express 3.2.1.00.12 VALID
Oracle Enterprise Manager 11.2.0.4.0 VALID
OLAP Catalog 11.2.0.4.0 VALID
Spatial 11.2.0.4.0 VALID
Oracle Multimedia 11.2.0.4.0 VALID
Oracle XML Database 11.2.0.4.0 VALID
Oracle Text 11.2.0.4.0 VALID
Oracle Expression Filter 11.2.0.4.0 VALID
Oracle Rules Manager 11.2.0.4.0 VALID
Oracle Workspace Manager 11.2.0.4.0 VALID
Oracle Database Catalog Views 11.2.0.4.0 VALID
Oracle Database Packages and Types 11.2.0.4.0 VALID
JServer JAVA Virtual Machine 11.2.0.4.0 VALID
Oracle XDK 11.2.0.4.0 VALID
Oracle Database Java Packages 11.2.0.4.0 VALID
OLAP Analytic Workspace 11.2.0.4.0 VALID
Oracle OLAP API 11.2.0.4.0 VALID
但从这个视图里面可以看到分布式事务的一点信息
select local_tran_id,state from dba_2pc_pending;
LOCAL_TRAN_ID STATE
---------------------- ----------------
2.12.64845 prepared
另外还有另一个视图 DBA_2PC_NEIGHBORS
BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理
BeginTrans和CommitTrans 用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句
查看被锁的表:
select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from
v$process p,v$session a, v$locked_object b,all_objects c
where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id
解锁:
alter system kill session '146';(其中146为锁住的进程号)
表查询:
合并查询:使用union关键字,可将满足条件的重复行去掉。
复制代码
代码如下:
select
ename,sal,job
from
emp
where
sal
2500
union
select
ename,sal,job
from
emp
where
job
=
'MANAGER';
而union
all用法和union相似,但是不会取消重复行。
intersect
用来取两个结果的交集。
minus用来取两个结果的差集。
使员工scott的岗位,工资,补助与SMITH员工一样。(使用子查询修改数据)
复制代码
代码如下:
update
emp
set
(job,sal,comm)=(select
job,sal,comm
from
emp
where
ename
=
'SMITH')
where
ename
=
'SCOTT';
事务:
设置保存点
savepoint
a
取消部分事务
roll
back
to
a
取消全部事务
rollback
设置为只读事务,用于统计某一刻之前的信息,而在统计过程中,可能还有访问,影响统计,所以,统计之前,设为只读事务,这样就保存此刻之前的结果,而之后的修改,将不会显示出来,设为只读事务的语句为:
复制代码
代码如下:
set
transaction
read
only;
设置之后会显示事务处理集。
sql函数:
将显示内容以小写形式显示,使用lower函数,比如
复制代码
代码如下:
select
lower(ename),sal
from
emp;
显示内容以大写形式显示,使用upper函数.还有length函数和substr函数。
复制代码
代码如下:
select
*
from
emp
where
length(ename)=5;
select
substr(ename,1,3)
from
emp;
substr表示从第一个取,取3个。
以首字母大写的方式显示所有员工的姓名。
将员工的姓名首字母大写
复制代码
代码如下:
select
upper(sub(ename,1,1)
from
emp;
将第一个字母之后的字母以小写的形式表示
复制代码
代码如下:
PRE
class=sql
name="code"select
lower(substr(ename,2,length(ename)-1))
from
emp;/PREBR
然后将两个结果合并,则得到了要显示的内容:
PRE/PRE
PRE
class=sql
name="code"
sizcache="0"
sizset="11"PRE
class=sql
name="code"select
upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1))
as
name
from
emp;/PREBR
替换函数replace
PRE/PRE
PRE
class=sql
name="code"
sizcache="0"
sizset="14"PRE
class=sql
name="code"select
replace(ename,'A','我')
from
emp;/PREBR
BR
BR
PRE/PRE
/PRE/PRE