我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有truncate
, create
orcommit
声明,但会话仍在提交中。我正在使用 SQL Developer 和 PL/SQL Developer。
有人可以告诉我哪些语句会导致过程或函数内的提交吗?
我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有truncate
, create
orcommit
声明,但会话仍在提交中。我正在使用 SQL Developer 和 PL/SQL Developer。
有人可以告诉我哪些语句会导致过程或函数内的提交吗?
所有 DML 语句 (INSERT/DELETE/UPDATE/MERGE) 都不会在 PL/SQL 中提交。
所有 DDL 语句都会提交(ALTER/CREATE...),即使语句失败。如果您正在运行运行 DDL 的动态语句 (EXECUTE IMMEDIATE),这也将提交您的事务。
一些DBMS 包也有提交的过程,例如DBMS_STATS。把它们都列出来会很麻烦。当您使用 DBMS 包时,请阅读相应的文档。