statement, session , transaction ,consistency 等概念

statement: 一个SQL语句。


session: 一个由ORACLE用户产生的连接,一个用户可以产生多个SESSION ,但相互之间是独立的。

transaction:所有的改变都可以划分到transaction里,一个transaction包含一个或多个SQL。当一个SESSION建立的时候就是一个TRANSACTION开始的时刻,此后transaction的开始和结束由DCL控制,也就是每个COMMIT/ROLLBACK都标示着一个transaction的结束。

consistency:是对于statement级别而不是transaction级别来说的。sql statement 得到的数据都是以sql statement开始的IMAGE。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-611691/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-611691/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: The ORA-01453 error message is raised when you attempt to execute a statement that attempts to set a transaction parameter after the transaction has already begun. To resolve this error, you need to ensure that the SET TRANSACTION statement is the first statement in the transaction block. The SET TRANSACTION statement is used to specify transaction-level characteristics, such as the transaction isolation level and read consistency. Here's an example of how to use the SET TRANSACTION statement correctly: ``` BEGIN SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -- other statements within the transaction COMMIT; END; ``` In this example, the SET TRANSACTION statement is the first statement within the transaction block, followed by other statements within the transaction, and then the COMMIT statement to end the transaction. Make sure that the SET TRANSACTION statement is the first statement within the transaction block to avoid the ORA-01453 error. ### 回答2: ORA-01453是Oracle数据库中的一个错误代码,表示执行了一个错误的事务顺序。 ORA-01453错误通常出现在以下情况下:在一个事务中执行了不正确的语句顺序,具体来说就是SET TRANSACTION语句不是事务的第一个语句。 在Oracle数据库中,SET TRANSACTION语句用于设置事务的各种属性,如隔离级别、读写访问模式等。然而,根据Oracle的规定,SET TRANSACTION语句必须作为事务的第一个语句,也就是在任何其他数据库操作之前执行。 造成这个错误的常见原因是在SET TRANSACTION之前执行了其他数据库操作语句,如INSERT、UPDATE、SELECT等。当数据库检测到SET TRANSACTION不是第一个语句时,就会抛出ORA-01453错误。 要解决这个问题,我们需要确保SET TRANSACTION语句是事务的第一个语句。可以按照以下步骤进行操作: 1. 将SET TRANSACTION语句移动到所有其他数据库操作之前。 2. 确保SET TRANSACTION语句是事务块的第一个语句。 3. 如果SET TRANSACTION语句存在于一个存储过程或函数中,确保调用该存储过程或函数之前没有任何其他数据库操作。 总之,ORA-01453错误是由于SET TRANSACTION语句不是事务的第一个语句造成的。正确的解决方法是将SET TRANSACTION语句移到事务的最前面,以确保符合Oracle的语法规定。 ### 回答3: ORA-01453错误是Oracle数据库中的一个错误代码,表示"SET TRANSACTION"必须作为事务的第一个语句出现。 事务是数据库操作的基本单位,它可以将一组相关的数据库操作作为一个不可分割的单元来执行,要么全部成功,要么全部回滚。在Oracle数据库中,当我们想要在一个事务中执行多个操作时,必须使用"SET TRANSACTION"语句来开始一个新的事务。 然而,如果"SET TRANSACTION"不是事务的第一个语句,就会触发ORA-01453错误。换句话说,如果我们在"SET TRANSACTION"之前执行了其他操作,例如查询、更新或插入数据等,就会出现这个错误。 要解决这个问题,我们只需要遵守正确的事务执行顺序,将"SET TRANSACTION"语句放在事务的起始位置即可。这样,我们就可以确保"SET TRANSACTION"是事务中的第一个语句。 下面是一个示例,展示了如何正确使用"SET TRANSACTION"语句: ``` BEGIN SET TRANSACTION READ WRITE; -- 执行其他数据库操作 -- ... COMMIT; END; ``` 在这个示例中,我们使用"BEGIN"和"END"关键字来定义一个事务块。在事务块中,我们首先执行"SET TRANSACTION"语句,然后执行其他需要在事务中执行的操作。最后,使用"COMMIT"语句来提交事务,或使用"ROLLBACK"语句来回滚事务。 总而言之,ORA-01453错误意味着"SET TRANSACTION"必须作为事务的第一个语句出现。通过遵守正确的事务执行顺序,我们可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值