Oracle 数据库 事务处理基本原理
事务处理:所谓的事务处理就是保证操作的完整性,所有操作要么同时成功,要么同时失败。
原理如下:
在Oracle每个连接到数据库的窗口,连接之后建立一个session。一个session里面对数据所做的修改,不会立刻反应在数据库的真实数据之上,是允许回滚的,当一个session提交所有的操作后,数据才真正地做出修改。
两个事务操作:
提交:commit
回滚:rollback
Commit后数据无法回滚。
死锁:一个session里面对某行数据进行更新操作,如果没有commit,那么另外一个session针对这行数据的更新将需要等待,直到第一个session commit后,才提交更新数据。
相关文档:
转:Oracle All And Any
这是在Oracle中比较容易被忽视的两个条件函数,但这两个函数其实对简化Sql语句是非常重要的作用的。
例如
scott@eddev> select ename, sal from emp where sal > any (1600, 2999);
ENAME &nb ......
SELECT ID,
col_name,
SUBSTR(col_name, 1, INSTR(col_name || ',', ',', 1, 1) - 1) C1,
SUBSTR(col_name,
......
用hibernate查询分页时,翻页显示中有少量记录是重复的。已经确认sql写法没错误。
select savebillin0_.*,entityacct2_.*
from save_bill_info savebillin0_,
CUST_INFO custinfo1_,
entity_acct_bill entityacct2_
where savebillin0_.cust_id = custinfo1_.ID
and entityacct2_.ACCOU ......
我写的脚本,有点慢,将就着用吧
--kill session语句
alter system kill session'50,492';
--以下几个为相关表
SELECT * from v$lock;
SELECT * from v$sqlarea;
SELECT * from v$session;
SELECT * from v$process ;
SELECT * from v$locked_object;
SELECT * from all_ ......