应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Oracle事务的简单使用

5730人阅读 2018/12/28 17:27 总访问:5181834 评论:0 收藏:0 手机
分类: Oracle


事务:

  事务是一个整体,这些操作要么全部执行成功,要么全部不执行。

使用事务的原因:保证数据的安全有效。

事务的四个特点:(ACID)

  1、原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。

  2、一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。

  3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。

  4、持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,也不应该丢失。


事务提交

  commit

事务回滚

  rollback

oracle数据库是默认开启了事务的,如果你不小心删除或者更新错了数据可以直接调用rollback回滚从而恢复数据。


oracle保存点

  保存点类似游戏的存档,可以回滚到存档的位置
  

存档:savapoint 保存点名称

回滚:rollbakc to 保存点名称



使用事务+函数实现转账的第一步:

  先用受影响的行数做一下两条sql是否都执行成功的判断

  1. create or replace function fun_trans(e1 nvarchar2,e2 nvarchar2 ,money int)
  2. return nvarchar2
  3. as
  4. prowcount int:=0;--申明一个存放受影响行数的临时变量
  5. begin
  6.       --把转出账户减去需要转账的金额
  7.       update scott.emp set sal = sal-money where ename = e1;
  8.       prowcount := prowcount+sql%rowcount;
  9.       --把钱添加到收入的账户
  10.       update scott.emp set sal = sal+money where ename = e2; 
  11.       prowcount := prowcount+sql%rowcount;    
  12.       
  13.       if prowcount <2 then
  14.          begin
  15.             rollback;
  16.             return '转账失败';
  17.          end;
  18.       else
  19.          begin
  20.             commit;
  21.             return '转账成功';
  22.          end;
  23.       end if;
  24. end;









欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

Oracle数据库中没有scott用户

使用SYS用户登录conn sys/密码 as sysdba(默认密码123456)然后找到oracle安装目录下scott.sql的这个文件然后执行命令:@+...

Oracle自定义函数的简单使用

一.最最最简单的返回一个数字的函数createorreplacefunctionfun_show returnint--申明返回值 as begin return1; end;...

Oracle存储过程

一个简单的带输入输出参数的存储过程(求两数之和)createorreplaceprocedureproc_sum(p1int,p2int,presultoutint) as be...

Oracle编程基础

简单介绍一下oracle中if,else,case when,循环,异常处理等用法if,elsedeclareptypeint:=2; begin ifptype=1then dbms_out...

Oracle使用游标

其实游标就是把查询的结果放入游标中,然后在去游标里边读取。相当于使用游标做了一个中转,而游标是可以作为参数进行传递...

Oracle程序包

当项目越来越大的时候,数据库中的函数,存储过程等越来越多。为了方便管理,Oracle建议使用程序包的管理机制。实现业务模...

Oracle中MERGE INTO,for,start with,decode用法

1. MERGEINTO:MERGEINTOT_TD_BU_MODIFY_NOTICE_LSA USING( selectMODIFY_NOTICE_ID,REJECT_REASONfromT_TD_BU_MODIFY_NOT...

Oracle+命令

oracle常用命令SQLPLUS进入oracle撤销命令revoke 权限 form 用户名show user查询当前登录账户锁定账户命令Alter user 用户...

Oracle 11g数据库的安装+空间管理

如果你在圣诞节没有收到礼物,请不要伤心也不要难过,因为接下来还有元旦,春节,还有情人节,还有元宵节......慢慢的你就...

Oracle--常用命令、条件语句、循环语句、SQL函数

Oracle常用命令1、登录数据库默认账户 默认密码 拥有权限sys 123456 as sysdba 拥有数据库的最高权限system ...

Oracle数据库的基本操作

Oracle数据库Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域...

Oracle数据库的认识和基本使用

推荐一个Oracle数据库的一个学习网站:http://www.oraclejsq.com/article/010100110.html一、对Oracle数据库的认识1、数据...

Oracle操作

Oracle数据库操作1、创建数据库create database databasename2、删除数据库drop database dbname3、备份数据库完全备份exp ...

Oracle 安装和常用的命令

Oracle 安装如下:https://jingyan.baidu.com/article/f79b7cb32095f79144023eae.html默认账户Sys 123456 as sysdba 数据...

Oracle数据库的同义词与视图

同义词概念:同义词顾名思义,是数据库方案对象的一个别名。这里的数据库方案对象指表、视图、序列、存储过程、包等。创建...