【问题标题】:Global Temp Table Oracle全局临时表 Oracle
【发布时间】:2017-10-02 12:05:01
【问题描述】:

Oracle 的新功能。我在 Oracle 中使用过全局临时表。这个临时表存储来自前端的输入值,我们进一步处理数据。

所以我的问题是,既然多个用户会发送请求,那么如何为不同的用户存储数据?例如,用户 A 发送了记录 ID 为 101102 的请求,同时用户 B 发送了记录 ID 为 103104 的请求。那么它会独立处理数据吗?它不会合并数据吗?

【问题讨论】:

  • 请尝试构建一个示例来澄清您的问题。 minimal reproducible example 可以提供有用的提示。
  • “我们进一步处理数据”是什么意思?你有存储过程吗?一份工作?一些 DML?

标签: oracle oracle11g global-temp-tables


【解决方案1】:

全局临时表在会话级别存储数据。因此,如果用户“A”和用户“B”使用单独的专用连接,则没有问题:两者都不会看到对方的数据。

当然,在现代世界中,许多应用程序都是 Web 应用程序,用户通过连接池中的共享连接连接到数据库。如果这是您的架构,那么您就有问题了:Web 架构是无状态的,而全局临时表是有状态的。您将如何解决这个问题取决于您首先使用 GTT 的确切原因。

【讨论】:

  • 感谢上述输入,上述观点很清楚,但还有一种情况是,如果您可以帮助我,例如使用两个不同选项卡的同一用户,那么数据会发生什么。 GTT 中的数据会重复吗?
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2015-12-02
相关资源
最近更新 更多