gpt4 book ai didi

sql - 为什么仅从数据库 View 中进行选择时为什么会得到未结交易?

转载 作者:行者123 更新时间:2023-12-04 04:56:03 26 4
gpt4 key购买 nike

如果我在pl/sql developer中针对数据库表执行一个简单的select语句,则可以得到我期望的一组标准结果。

最近,我从存储过程中粘贴了一个查询,该查询恰好是从 View 中选择的,并注意到事务似乎处于打开状态。回滚和提交选项在PL/SQL开发人员中可用。

一项对其他开发人员的调查显示,这似乎影响了某些,但没有影响其他,这使我怀疑PL/SQL Developer的设置。

到底为什么会这样呢? View itelf具有到另一个数据库的DBLink,但是我不希望这会产生任何影响。

有什么想法吗?

最佳答案

任何 SQL语句都会在Oracle中启动事务。

From the manual:

A transaction begins with the first executable SQL statement. A transaction ends when it is committed or rolled back, either explicitly with a COMMIT or ROLLBACK statement or implicitly when a DDL statement is issued. [...] An executable SQL statement is a SQL statement that generates calls to an instance, including DML and DDL statements



最有可能的是那些不了解此内容的人正在自动提交模式下运行,在该模式下,由语句启动的事务将在语句完成后立即提交。

其他人声称 SELECT不是DML,而是 the manual clearly states:

Data manipulation language (DML) statements query or manipulate data in existing schema objects. They enable you to:

   * Retrieve or fetch data from one or more tables or views (SELECT)
   * Add new rows of data into a table or view (INSERT)
[...]

关于sql - 为什么仅从数据库 View 中进行选择时为什么会得到未结交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4488853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com