现在有两个表A和B,B是要create的表,在create table B之前,我对A的数据进行了update,那么create table B以后是否会将对A的update的事务自动commit?如果create B的时间很长,那么事务的提交是在create之前还是之后呢?以上代码是在一个存储过程之中,应该是在同一session内。
解决方案 »
- oracle将行变成列如何实现?
- 请问这段代码错在哪?程序提示错误
- oracle job
- 新手提问:PLSQL Developer无法看到scott用户所见的表
- Oracle中自带Pro*c 的预编译器了吗?如何使用?先谢了!
- msvc++6开发CS架构 : 服务器端接收请求报文后,如何最大效率地进行oracle数据库中操作,例如insert,select,update等? oci?
- 怎样在oracle 9i的管理器中设置回滚段的大小???
- 为什么监听器总是启动不了?和操作系统有关吗?
- 比较奇怪的问题,请教大家?
- 记录 312: 被拒绝 - 表 BSA_20160103 的列 OB_INFO 出现错误。 多字节字符错误。
- 各位大哥大姐好,求救BAT实现自动恢复的脚本.
- JOB调用存储过程如何实现存储过程的并发执行?
不是create table b以后对update的事务自动commit,而是在开始create 操作之前就已经提交了事务
可以理解为执行create table之前自动执行了commit;
Ø 一个DDL语句组成。
Ø 一个DCL语句组成。那么如何标识一个事务(Transactions)呢?因为ORACLE公司在开始时是瞄准联机事务处理(OLTP)的,所以它对事务处理提供了强有力的支持。ORACLE可以自动地标识一个事务(Transactions)。ORACLE的一个事务是以第一个可执行的SQL语句开始。当下列事件之一发生时结束。1. 用户执行了COMMIT语句(提交)。
2. 用户执行了ROLLBACK语句(回滚)。
3. 用户执行了DDL语句(自动提交)。
4. 用户执行了DCL语句(自动提交)。
5. 用户正常退出SQL*PLUS(自动提交)。
6. 用户非正常退出SQL*PLUS(自动回滚)。
7. 系统崩溃,包括硬件或软件故障(自动回滚)。作为一位ORACLE的专业人员,你应该尽可能地使用COMMIT和ROLLBACK语句来显式地控制事务的提交和回滚。因为使用从3到7的隐显式事务控制特性有时可能产生意想不到的结果。现在我们可以使用这两个语句把12.14节中在银行的自动提款机(ATM)上那些逻辑上相关的操作集成为一个事务。这些逻辑上相关的操作要么全部完成(提交),要么全部放弃(回滚)。摘自:“从实践中学习Oracle/SQL”, 清华大学出版社出版。
1 commit;
2 ddl
3 commit;
所以ddl语句即使报错也会提交.