请教一个Oracle的问题(100分)

  • 主题发起人 主题发起人 zhjwjan
  • 开始时间 开始时间
Z

zhjwjan

Unregistered / Unconfirmed
GUEST, unregistred user!
oracle的文档里说到rollback只是对一连串的dml语句(insert,update,delete)才有效,
对ddl语句(create,drop,alter...)无效,每个ddl语句当作单独一个事务来执行,如果ddl
语句前有dml语句,先提交之前的所有dml语句,再新建一个事务来执行ddl语句。请问,
如果我要连续创建多个表,如果创建其中一个失败的话,就不提交事务,怎么可以做到这样?
更复杂点,我想将多个ddl和dml语句作为一个事务进行处理,可不可以?如果可以改怎么做?
 
将 ddl 和 dml 一起使用是不行的,数据库会自动处理事务。
创建一个表数据库会自动提交,不能用回滚将一个已经建成的表删除。
写一个存储过程。在内部判断每一步是否成功。不成功就将所做流程
反向处理,清除对象。
 
每一次dml执完后,用commi一下。
 
多人接受答案了。
 
后退
顶部