4

我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有truncate, createorcommit声明,但会话仍在提交中。我正在使用 SQL Developer 和 PL/SQL Developer。

有人可以告诉我哪些语句会导致过程或函数内的提交吗?

4

1 回答 1

6

所有 DML 语句 (INSERT/DELETE/UPDATE/MERGE) 都不会在 PL/SQL 中提交。

所有 DDL 语句都会提交(ALTER/CREATE...),即使语句失败。如果您正在运行运行 DDL 的动态语句 (EXECUTE IMMEDIATE),这也将提交您的事务。

一些DBMS 包也有提交的过程,例如DBMS_STATS。把它们都列出来会很麻烦。当您使用 DBMS 包时,请阅读相应的文档。

于 2012-06-05T09:28:25.227 回答