gpt4 book ai didi

sql - Oracle session 临时表中的数据何时会被删除?

转载 作者:行者123 更新时间:2023-12-05 00:02:13 26 4
gpt4 key购买 nike

我已经读到 session 表中的数据在提交过程中仍然存在。在Ask Tom的话.

the ON COMMIT PRESERVE ROWS makes this a session based temporary table. rows will stay in this table until a logoff. Only I can see them though, no other session will ever see 'my' rows even after I commit



对我来说,这里的问题短语是“直到注销”。以维护与 DB 的单个连接的 Web 应用程序为例。所以这意味着所有登录到 Web 应用程序的用户都将共享同一个数据库 session 。那么,这是否意味着所有用户都会在该临时表中看到相同的内容?

在实际的 Web 应用程序中,我们通常会维护多个 DB 连接。这些连接被维护在一个“池”中,并且它们被许多用户重复使用。在这种情况下,行为可能会非常不稳定,用户可能会查看上一个用户填充的数据。

最佳答案

这就是 Oracle 还提供“ON COMMIT DELETE ROWS”选项的原因。

全局临时表中的数据可以具有 session 范围(即 ON COMMIT PRESERVE ROWS)或事务范围(ON COMMIT DELETE ROWS)。

显然,在连接池和共享服务器/共享 session 的情况下,您需要事务范围(ON COMMIT DELETE ROWS)。

希望有帮助。

关于sql - Oracle session 临时表中的数据何时会被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240810/

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