社区
Oracle
帖子详情
如何建立一个基于事务的存储过程?
南飞雁
2003-07-24 08:30:39
oracle里面有些存储过程是基于事务的,比如dbms_job,有些不是,比如utl_file。
我想创建一个自己的基于事务的存储过程,也就是说,当在触发器里面调用此存储过程的时候,只有commit的时候才调用此存储过程。
用pl/sql,java或者c写的存储过程都可以。
...全文
133
4
打赏
收藏
如何建立一个基于事务的存储过程?
oracle里面有些存储过程是基于事务的,比如dbms_job,有些不是,比如utl_file。 我想创建一个自己的基于事务的存储过程,也就是说,当在触发器里面调用此存储过程的时候,只有commit的时候才调用此存储过程。 用pl/sql,java或者c写的存储过程都可以。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiezhi
2003-07-25
打赏
举报
回复
就是說有的是隱含提交的,有的則是必須顯示提交。
但你的是否調用存儲過程和是否提交沒有直接的關系,但你可以根據發生的變化來判斷是否已經提交了。
南飞雁
2003-07-25
打赏
举报
回复
to jiezhi(浪子) :能否举个例子
南飞雁
2003-07-24
打赏
举报
回复
“只有commit的时候才调用此存储过程。??
不明白,调用了就调用了,commit是使修改永久化,就象一条sql语句一样,你不能等你commit时才执行这条语句吧”
比如执行dbms_job.submit(...)以后,只有执行了commit,这条语句才会放到job queue里面等待执行,如果没有执行commit,你在user_jobs里面是看不到这个job的。但是如果你执行了util_file的写文件操作,即使你没有执行commit,文件实际上也已经被改写了。
不知道我说的意思你理解了没有?
more_zou
2003-07-24
打赏
举报
回复
事实上如果你不在过程中加事务语句的话(commit rollback),oracle把存储过程调用看作是一条原子语句,oracle会在调用过程前隐式加上一个savepoint
也就是如果你调用此过程的事务commit,就会提交,rollback过程中的执行也会回滚
只有commit的时候才调用此存储过程。??
不明白,调用了就调用了,commit是使修改永久化,就象一条sql语句一样,你不能等你commit时才执行这条语句吧
我的一点理解,欢迎指正!
一次性搞定数据库
事务
第七部分:阿里巴巴分布式
事务
框架Seata:历经多年双十一,微服务分布式
事务
框架,用
一个
Nacos+Spring Cloud+Seta+MySql的微服务项目,实战讲解阿里的分布式
事务
技术,深入理解和学习Seata的AT模式、TCC模式、SAGA...
什么是数据库的
存储过程
?
存储过程
就是将常用的或很复杂的工作,预先用SQL语句写好并用
一个
指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的
存储过程
的功能相同的...
什么是
事务
?
事务
的特性?
在mysql中,
事务
是一种机制、
一个
操作序列,是访问和更新数据库的程序执行单元。
事务
中包含
一个
或多个数据库操作命令,会把所有的命令作为
一个
整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,...
什么时候使用
存储过程
比较适合?
存储过程
(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不...当
一个
事务
涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用
存储过程
什么时候用
存储过程
合适
当
一个
事务
涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用
存储过程
;当在
一个
事务
的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和...
Oracle
17,086
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章