【问题标题】:How to undo ALTER TABLE using sqlplus (Oracle 10g Express)?如何使用 sqlplus (Oracle 10g Express) 撤消 ALTER TABLE?
【发布时间】:2011-10-29 19:24:13
【问题描述】:
rollback;

似乎没有撤消更改表的更改。

背景:
我正在生成一些 .sql 脚本(基于解析的 Hibernate 脚本),这些脚本正在破坏我的表。导入完整的数据库进行测试最多需要 30 分钟(也会减慢我的机器速度),尽管我喜欢休息,但我更愿意使用回滚等命令撤消所有操作,然后重试。

顺便说一句,这是 Oracle 10g Express Edition Release 10.2.0.1.0

这可能吗?

【问题讨论】:

    标签: oracle10g sqlplus rollback alter


    【解决方案1】:

    对于特快版,我不确定这是否可行。您不能回滚像 ALTER TABLE 这样的 DDL 操作,因为 DDL 是隐式提交的。

    Oracle 确实可以选择create restore points,然后您可以相对快速地将整个数据库闪回到某个时间点。这将撤消在创建还原点和发出闪回命令的点之间所有已提交事务(DML 和 DDL)的影响。这是example of creating and flashing back to a restore point,这是另一个flashback for the entire database。我只是不确定此功能是否在 Express Edition 中可用。

    【讨论】:

    • 通过您的链接(和 Google),我只能找到恢复单个表的方法。你知道闪回整个还原点的方法吗?
    • @glenneroo - 您可以将整个数据库闪回到还原点 download.oracle.com/docs/cd/B19306_01/server.102/b14200/…orafaq.com/node/1847 是很好的引物。
    • 我猜它不适用于 Express Edition。执行命令 alter database flashback on; 返回以下错误:ORA-00439: feature not enabled: Flashback Database。或者,要检查该功能是否可用,只需运行 select flashback_on from v$database;
    【解决方案2】:

    此版本的 Oracle 对任何 ALTER TABLE 语句执行提交。

    看到这个帖子: it possible to roll back CREATE TABLE and ALTER TABLE statements in major SQL databases?

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 2019-11-06
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2020-05-08
      相关资源
      最近更新 更多