已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,独立事务,曾创能,.,2,目标,通过本章学习,您将可以:了解独立事务的概念和用途了解独立事务的用法,.,3,问题的提出,问题想在执行当前一个由多个DML组成的transaction(事务)时,为每一步DML记录一些信息到跟踪表中,由于事务的原子性,这些跟踪信息的提交将决定于主事务的commit或rollback。如:begininsertsetlogupdatesetloginsertsetlogcommit;end;解决方案传统的解决方案之一:程序员不得不把这些跟踪信息记录到类似数组的结构中,然后在主事务结束后把它们存入跟踪表。,.,4,什么是独立事务,独立事务独立事务(AUTONOMOUSTRANSACTION,简称“AT”),又叫“自治事务”。AT是由主事务(以下MT)调用但是独立于它的事务。独立事务的特点在AT被调用执行时,MT被挂起,在AT内部,一系列的DML可以被执行并且commit或rollback.由于AT的独立性,它的commit和rollback并不影响MT的执行效果。在AT执行结束后,主事务获得控制权,又可以继续执行了。,.,5,Oracle中独立事务的用法,条件编译PRAGMAAUTONOMOUS_TRANSACTION独立事务的使用范围独立事务可以使用在以下的位置:存储过程和函数;本地过程和函数;包;对象方法;匿名块的最顶层。,.,6,使用独立事务的注意事项,注意事项在匿名PL/SQL块中,只有顶级的匿名PL/SQL块可以被设为AT如果AT试图访问被MT控制的资源,可能有deadlock发生Package不能被声明为AT,只有package所拥有的function和procedure才能声明为ATAT程序必须以commit或rollback结尾,否则会产生Oracle错误ORA-06519:activeautonomoustransactiondetectedandrolledback,.,7,独立事务举例(1),记录结算日志(AT)PROCEDUREup_SetClearLog(i_TaskIDINVARCHAR2,i_LogInfoINVARCHAR2,i_LogLevelINVARCHAR2DEFAULTINFO)ISPRAGMAAUTONOMOUS_TRANSACTION;l_Logtimet_clear_log.logtime%TYPE;l_LogSeqNoNUMBER;l_Tradingdayt_clear_log.Tradingday%TYPE;BEGINl_Tradingday:=TO_CHAR(SYSDATE,YYYYMMDD);l_Logtime:=TO_CHAR(SYSDATE,HH24:MI:SS);SELECTseq_clear_log_id.NEXTVALINTOl_LogSeqNoFROMDUAL;INSERTINTOt_clear_log(TRADINGDAY,id,logtime,taskid,loglevel,loginfo)VALUES(l_Tradingday,l_LogSeqNo,l_Logtime,i_TaskID,i_LogLevel,i_LogInfo);COMMIT;EXCEPTIONWHENOTHERSTHENNULL;ENDup_SetClearLog;,.,8,独立事务举例(2),结算PROCEDUREup_settle(o_RetCodeOUTINT,-返回结果码o_RetMsgOUTVARCHAR2,-返回结果信息i_TradingDayINt_MemberEx.TradingDay%TYPE-交易日期,默认为当日)IS-定义变量l_locationVARCHAR2(128);-当前位置l_procVARCHAR2(128);-存储过程名l_levelVARCHAR2(128);-错误级别BEGINl_proc:=up_settle;l_level:=INFO;o_RetCode:=1;o_RetMsg:=操作失败;up_SetClearLog(l_proc,Begin,l_level);l_location:=客户持仓处理;up_DoClientPos(o_retCode,o_retMsg,i_tradingday);l_location:=会员出入金处理;up_DoMoneyIO(o_retCode,o_retMsg,i_tradingday);l_location:=会员资金处理;Up_DoMemberFund(o_retCode,o_retMsg,i_tradingday);up_SetClearLog(l_proc,End,l_level);commit;o_RetCode:=0;o_RetMsg:=操作成功;RETURN;EXCEPTIONWHENOTHERSTHENo_RetCode:=1;o_RetMsg:=操作失败,出现错误!错误位置:|l_location|chr(10)|error:|sqlerrm;up_SetClearLog(l_proc,o_RetMsg,ERROR);ENDup_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年濮阳辅警招聘考试题库附答案详解ab卷
- 2025年温州辅警协警招聘考试真题附答案详解(研优卷)
- 2025年铜川辅警协警招聘考试备考题库附答案详解(典型题)
- 2025年连江县辅警协警招聘考试备考题库及答案详解(必刷)
- 2025年黑龙江辅警招聘考试真题附答案详解(模拟题)
- 2025年湛江辅警协警招聘考试真题含答案详解(培优)
- 2025年遵义辅警协警招聘考试真题及答案详解(历年真题)
- 2025年璧山县辅警招聘考试真题及答案详解(易错题)
- 2025年葫芦岛辅警协警招聘考试备考题库及1套参考答案详解
- 2025年阿里辅警招聘考试题库附答案详解(培优)
- 甄嬛传之非谓语的前世今生 高三英语
- 大型活动现场消防安全措施
- 石膏线条合同协议
- 行政法基础知识培训课件
- 行政总监工作总结和计划
- 配位滴定法概述课件
- 养猫必知小知识
- 100以内加法减法能力提升1000道(可打印)
- 仓库6S管理制度仓库现场6S执行标准仓库6S检查表
- 电商平台运营合作协议
- 2025年浙江省重点高中提前自主招生数学模拟试卷(含答案)
评论
0/150
提交评论