【发布时间】:2014-01-03 20:52:25
【问题描述】:
可以帮助我自动提交以下语句。在 Oracle 中如何使用 Commit 语句来避免自动提交确认对话框?
TRUNCATE TABLE manual_list_backup;
INSERT INTO manual_list_backup
SELECT *
FROM manual_transactions
我正在 TOAD 数据点中执行上述语句。每次运行此语句时,我都会看到对话框说
您对“我的架构名称”有未提交的更改。你想提交他们吗?
除非我对这个对话框说“是”,否则上述语句不会产生任何结果
【问题讨论】:
-
自动提交是一个客户端功能。你用什么客户端?
-
作为一般规则,在大多数(全部?)关系 DBMS 中,您不能将事务用于 DDL 语句,如
TRUNCATE TABLE。除此之外,Oracle 服务器显然不会显示对话——你的问题是关于什么程序? -
我正在 TOAD 数据点中执行上述语句。每次运行此语句时,我都会在对话框中显示“您对'我的模式名称'有未提交的更改。是否要提交它们”。除非我对此对话框说“是”,否则上述语句不会产生任何结果。
-
@santhosha - 以后请编辑您的问题以包含更多信息。注释用于临时或无关的注释。应该可以从一个线程中删除所有 cmets 而不会减少其中的有用信息。
-
@ÁlvaroG.Vicario:我会反过来说:Oracle 是少数不支持事务性 DDL 的公司之一。 Postgres、SQL Server、Firebird 和 DB2 支持事务 DDL。在 Postgres 和 SQL Server 中,您可以回滚
truncate(不确定其他)