:oracle学习笔记之oracle事务

来源:百度文库 编辑:九乡新闻网 时间:2024/07/13 23:31:51
  1 首先 补充一下有关to_date 函数的应用。  可以改变年月日的插于格式。 to_date('1998-05-24','YYYY-MM-DD'),to_date('1998/05/24','YYYY/MM/DD')等等...2 当使用values子句时,一次只能插入一条数据,当使用子查询插入数据时,一条insert语句可以插入大量的数据,当处理行迁移或者装载外部表的数据到数据库的时候,可以使用子查询来插入数据。创建一张空表: create table kkk(myId number(4),myname varchar2(50),myDept number(5));insert into kkk (myId,myname,myDept)  select empno,ename,deptno from emp where deptno=10;3 用子查询更新数据使用update语句更新数据时,既可以使用 表达式或者数值直接修改数据,也可以使用子查询修改数据。问题:希望员工soctt的岗位,工资 与补助 与simth员工一样。update emp set (job,sal,comm) = (select job,sal,comm from emp where ename ='SIMTH') where ename='SCOTT';事务:1、 什么是事务
事务是用于保证数据的一致性,它由一组相关的DML语句组成,该组的DML语句要么全部成功,要么全部失败。如:网上转账……
2、 事务和锁
当执行事务操作(dml语句)时,oracle会在被作用的表上加锁,防止其他用户改变表的结构,这点对我们用户来讲是很重要的。
3、 保存点和回退事务
保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务定义的所有保存点,当执行rollback时,通过指定保存点可以回退到指定的点。
4、 提交事务
使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁、当使用commit语句结束事务后,其它会话将可以查看到事务变化后的新数据。
5、 如何在Java中操作事务呢
其实很简单,oracle是默认自动提交事务的,那么我们只要在执行事务语句之前取消自动提交,执行事务的语句过后再手动提交就可以了
假设我这有一个Connection对象的实例conn,调用这个函数:
conn.setAutoCommit(false);就可以取消自动提交了,然后我们执行一系列的中间不能打断的DML语句,完了再在最后加上这么一句:conn.commit();就可以了,如果一旦发生异常,在catch语句块中加上conn.rollback();就OK了。
6、 只读事务
只读事务是指只允许执行查询的操作,而不允许执行任何其它DML操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。假定机票代售点每天18点统计今天的销售情况,这时可以使用只读事务,在设置了只读事务后,尽管其它会话可能会提交新的事务,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据信息。
7、 设置只读事务
Set transaction read only