过程中的事务

定义过程p1

create or replace procedure p1

as

begin

insert into student values(5,'xdh','m',sysdate);

rollback;

end;

定义过程p2

create or replace procedure p2

as

begin

update student set stu_sex = 'a' where stu_id = 3;

p1;

end;

执行过程p2

exec p2;

执行完毕发现表中数据没有变更,说明p1中的rollback语句将p2中的update语句也回滚了。

自主事务处理

步骤:

主事务处理启动自主事务处理

主事务处理被暂停

自主事务处理sql操作

中止自主事务处理

恢复主事务处理

pragma autonomous_transaction

用于标记子程序

在p1的as begin当中加入 pragma autonomous_transaction  后执行,发行p2的update语句生效,p1中的事务作为自主事务来处理,不影响主事务。

程序包

相关对象的封装

-程序包规格说明

声明子程序,不包含实现

create package 包名 is|as 变量声明|类型定义|异常声明|游标声明|函数说明|过程说明

pragma restrict_references(函数名,WNDS[,WNPS][,RNDS][,RNPS])

end [包名];

create or replace package StuPackages

is

type curRefStudent is REF CURSOR RETURN student%rowtype;

procedure insertStudent(stuid in student.stu_id%type,stuname in student.stu_name%type,stusex in student.stu_sex%type,studate in student.stu_birthday%type);

Function QueryStudent(stuid in student.stu_id%type) return student%rowtype;

end StuPackages;

-程序包主体

定义子程序,实现声明部分

create package body 包名 is|as 变量声明|类型定义|异常声明|游标声明|函数定义|过程定义

end [包名];

CREATE OR REPLACE

PACKAGE BODY STUPACKAGES AS

procedure insertStudent(stuid in student.stu_id%type,stuname in student.stu_name%type,stusex in student.stu_sex%type,studate in student.stu_birthday%type) AS

i INTEGER;

Student_Exist EXCEPTION;

BEGIN

select count(*) into i from student where stu_id = stuid;

if i>0 then

raise Student_Exist;

else

insert into student values(stuid,stuname,stusex,studate);

commit;

end if;

oracle博客北大青鸟,北大青鸟oracle学习笔记25相关推荐

  1. [转载]一篇经典的求职经历博客,值得深入研究和学习

    一篇经典的求职经历博客,值得深入研究和学习,感谢原创作者分享! 工作刚刚落实,论文也刚完成,终于有时间对自己的求职历程及求职经验进行总结了.应同学要求,最近准备书写系列文章"我的求职历程及经 ...

  2. July博客第十二章参考学习

    ### July博客第十二章参考学习 ## 第一题:给40亿个不重复的unsigned int 的整数,无序,给一个随机数,快速判断这个是否在40亿个数当中 1. 个人思路: - bitmap,重点在 ...

  3. oracle博客管理系统,读赵杰夫博客之ORACLE EBS 系统主数据管理(A)摘录

    读赵杰夫博客之ORACLE EBS 系统主数据管理(A)摘录 系列之五:ORACLE EBS 系统主数据管理(A) 物料是在INV模块中定义的,供应商是在AP模块中定义的,客户是在AR模块中定义的 三 ...

  4. 博客园是一个不错的学习交流的网站

    通过一篇Oracle 12c rac搭建的文章,以及搭建过程出现了一些问题,觉得博客园挺好用,挺干净的.比csdn.以后就用博客园学习了. 转载于:https://www.cnblogs.com/cu ...

  5. “2012年度IT博客大赛”获奖感言--梦想、学习、坚持、自信、淡定

    今年有幸参加"2012年度IT博客大赛",并且进入了前十强,大赛组委会让前十强选手写一下获奖感言.自开博以来,已经有一年半的时间,刚好籍此机会回顾一下写博历程.首先要感谢<老 ...

  6. oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...

    天萃荷净 Oracle分区表管理,记录关于Oracle分区表的管理案例:创建.删除.合并.拆分.交换.更改分区表的操作方法 1.添加创建分区表 1.1)增加分区(add partition) 语法是: ...

  7. 用node.js 搭建的博客程序心得(node.js实战读书笔记1)

    学习node已经有一段时间了,之前把了不起的node.js看完了,基本算了解了一些node的基本的用法还有一些概念了,然后就开始看第二本node.js实战,第一章就是搭建一个博客程序.但是不得不吐槽一 ...

  8. 个人博客【页面插件集成】---学习09

    文章目录 一.思维导图 二.Markdown 1.网上学习 2.下载 3.创建lib文件夹,放入插件 4.使用插件 5.运行查看效果 6.下载样式 7.解压出来把typo.css拷贝到css下 8.编 ...

  9. 博客SQL-Server更新数据库UPDATE语法读书笔记[图]

    最近在研究博客网站,其实在很多年以前,博客是非常流行的,那时候互联网还处于发展的初级阶段,尤其是在中国地区,因此出现了国内-国外两大博客系统,分别是zblog和wordpress程序,当然了,很显然是 ...

  10. 【新博客】个人新博客地址-[NDASH - 蘇小沐学习圈 (writebug.com)]

    [个人新博客地址:NDASH - 蘇小沐学习圈 (writebug.com)] 以后电子取证相关的博客会优先在新平台发布,CSDN这边可能会慢一些,感兴趣的可以移驾关注下-[蘇小沐] 名称 时间 开始 ...

最新文章

  1. android Image zImage uImage boot.img分别是什么?个人笔记
  2. 天龙源码分析 - 选择角色流程
  3. 使用 python 操作 redis
  4. WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网...
  5. java 域_java四大域总结
  6. 【BZOJ3566】—概率充电器(树形+概率dp)
  7. windows10怎样关闭,开机启动项中不需要的应用?
  8. 数字摄像机常见术语和参数介绍
  9. lua 去除小数点有效数字后面的0_【物联网学习番外篇】Lua脚本编程扫盲
  10. oracle 写递归,请问一个递归sql的写法
  11. 天锐绿盾加密系统是做什么用的?
  12. Photoshop插件-删除亮调通道蒙板-脚本开发-PS插件
  13. 诺兰的阶段模型(转载)
  14. 大数据是什么 有哪些价值
  15. 机器学习应用——强化学习课程总结 实例 “自主学习Flappy Bird游戏”(MDP蒙特卡洛强化学习Q-learningDRLDQN)
  16. 格林尼治时间转换为本地时间
  17. 中英文双标题latex
  18. 知识分享 ITエンジニアの中途採用について③
  19. 项目规划管理 - 3
  20. mysql查询表总记录数_mysql_notes_查看表的总记录数count()

热门文章

  1. ini配置文件解析(C++)
  2. 奇异值分解算法java_AI数学基础之:奇异值和奇异值分解
  3. CI/CD --- 什么才是真正的自动化平台
  4. 只需三步,不用下载Axure RP Extension for Chrome插件,即可看原型文件
  5. 管家婆有未记账的凭证怎么办_管家婆录入凭证时没有其他业务收入,结转后出现其他业务收入如何解决 _0...
  6. 敏捷领导力——组织敏捷转型的脚手架(Scaffolding)模型解析
  7. 公司拖欠工资,删代码删库跑路,违法么?
  8. 起底养老机器人产业:有人出货猛增 有人项目叫停
  9. linux下扫描带库命令,在Linux平台使用mhVTL虚拟化磁带库(1)
  10. 「题解」清华集训 2016 你的生命已如风中残烛