PL SQL Auto Commit执行时

时间:2013-08-04 11:50:49

标签: plsql plsqldeveloper

我是PL / SQL编程的新手。我试着在代码中编写带有一些DML语句(插入)的pl / sql过程。在pl / sql代码中执行插入操作后,我没有进行任何显式提交。但是在执行pl / sql过程后,事务将被提交。

这是默认行为吗?

我如何控制这个?

2 个答案:

答案 0 :(得分:6)

DML语句(INSERT / DELETE / UPDATE / MERGE)不在PL / SQL中执行自动提交。 DDL语句确实提交(ALTER / CREATE等),即使出现故障也会发生这种情况。如果您正在运行EXECUTE IMMEDIATE,如运行DDL的动态语句,那么这也将提交您的事务。自2000

以来,它就像那样[并将继续]

SQL * Plus等客户端界面具有自动提交功能,可以关闭/打开,在客户端文档中查找。像

这样的东西
SET AUTOCOMMIT OFF

您可以看到此变量的当前状态

SHOW AUTCOMMIT 

这将告诉你它是否开/关。

通过this了解更多自动提交的变体

答案 1 :(得分:4)

在PL / SQL Developer客户端中,您可以通过“首选项”控制SQL窗口事务的自动提交。

enter image description here