十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理
创新互联建站-专业网站定制、快速模板网站建设、高性价比广阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式广阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖广阳地区。费用合理售后完善,10余年实体公司更值得信赖。
BeginTrans和CommitTrans 用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句
当然不是了,在Oracle中,只有DML才会开启一个事务。也就是说Insert,Update,Delete这些都会开启一个事务,并且该事务在commit/rollback/ddl命令时会自动结束。
其他的,像查询语句Select(不包含For Update等语句)时,是不会开启一个事务的。
补充:
首先有一点非常抱歉,上次的回答中误将DML写成了DDL,可能这一点儿让你误解了。
“当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗”这种说法是不正确的,第一个Insert没有commit或者rollback的情况下,第二个Insert和第一个是属于同一个事务的。因为Insert不属于commit/rollback/ddl命令,而是属于DML命令。
当第一个Insert结束后,立即执行一个新建表,删除表等命令(DDL命令),则会结束当前事务。
事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。
例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。