我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有 truncate
, create
或 commit
声明,但 session 仍在提交。我正在使用 SQL Developer 和 PL/SQL Developer。
有人能告诉我哪些语句会导致过程或函数内的提交吗?
最佳答案
所有 DML 语句(INSERT/DELETE/UPDATE/MERGE)都不会在 PL/SQL 中提交。
所有 DDL 语句 提交 (ALTER/CREATE...),即使语句失败。如果您正在运行运行 DDL 的动态语句 (EXECUTE IMMEDIATE),这也将提交您的事务。
一些 DBMS packages也有提交的过程,例如 DBMS_STATS .将它们全部列出来会很麻烦。使用 DBMS 包时,请阅读相应的文档。
关于oracle - 在 PL/SQL 过程中,哪些语句会导致提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894645/