SQL Server 开始传输.. Oracle 中的回滚等价物

Posted

技术标签:

【中文标题】SQL Server 开始传输.. Oracle 中的回滚等价物【英文标题】:SQL Server's begin tran.. rollback equivalent in Oracle 【发布时间】:2021-03-02 00:53:21 【问题描述】:

我是 Oracle 新手,我在 SQL Server 中使用了以下回滚命令。但是相同的命令在 Oracle 中不起作用。

begin tran  
  ....sql statement
rollback

Oracle 中等价的begin tran... rollback 是什么?

【问题讨论】:

【参考方案1】:

每当您执行 DML 时,Oracle 都会为您隐式启动事务(默认情况下,打开的事务在 Oracle 中要安全得多,因为您没有编写器阻止读取器,并且您没有事务日志备份问题)。

您可以使用commitrollback 结束它们。无需显式启动事务。

【讨论】:

如果我对选择语句使用回滚,我会收到错误 ORA-00933:SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束” *原因:*操作:第 4 行错误:第 1 列 我们必须在产生它的 exact 命令的上下文中查看该错误。我猜你没有在 SELECT 语句后面加上分号。但总的来说,没有什么可以从一个简单的 SELECT 命令提交或回滚。事务由执行 DML(INSERT、UPDATE、MERGE 或 DELETE)而不是 SELECT 启动。 @JSBeginner,你想要一个只读事务吗?见the doc。

以上是关于SQL Server 开始传输.. Oracle 中的回滚等价物的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot 的 Oracle 到 SQL Server 数据传输

将 XML 文档从 SQL SERVER 插入到 Oracle

将表从 Oracle 转移到 SQL Server 的方法都有哪些

Oracle Transparent Gateway Connect to SQL Server 透明网关

Oracle 和 SQL Server 中的 NVARCHAR 之间的区别?

[转帖]oracle改版sql server问题点汇总