问题标签 [global-temp-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
748 浏览

oracle - Oracle 全局临时表的不同“提交时”设置

有人可以就 Oracle GTT 的两种不同设置背后的机制提供建议吗?

1) 在提交时保留行

2) 在提交时删除行

现在我知道“事实”:

a) 插入这两种 GTT 的记录具有不同的生命周期。

b) 两种类型的 GTT 的定义保持不变,直到我们删除 GTT < REF >。

但是,我想知道的是,就事实 b) 而言,两种类型的 GTT 之间是否有任何区别?

有人告诉我,对于“保留”类型的 GTT,表的定义不仅会保留,而且会按使用次数累积(即,如果有 10 个会话使用 GTT,则会创建表定义的 10 个副本,并且在我们放弃 GTT 之前不会消失)。而且如果我们不定期删除'preserve' GTT,SQL 语句的性能会越来越慢。

请问有人能解惑吗?

【2018.08.21】 感谢大家回答问题。请允许我细化这个问题,不是 GTT 的表定义被复制,而是每个会话使用相同的 GTT 分配的表空间在会话结束时不会释放,而是 GTT 的专用删除。那会是事实吗?

0 投票
3 回答
2491 浏览

sql - 何时以及为什么在 SQL Server 中使用全局临时表而不是本地临时表

我有一个像这样的本地临时表:

现在我可以访问该特定用户会话和该特定查询窗口中的本地临时表,与全局临时表相比,我可以在任何查询窗口中访问全局临时表,直到创建的查询窗口关闭为止超好的。

现在我无法理解为什么需要一个全局临时表。

我的问题是:

  1. 全局临时表实例是特定的吗?如果是,那么其他用户如何获取新创建的全局临时表

  2. SQL Server 在本地临时表上开发全局临时表的原因是什么?

0 投票
0 回答
51 浏览

asp.net - ASP.NET 应用程序尝试使用全局临时表访问存储过程时未找到对象

我有一个访问 Oracle 12 数据库的 ASP.NET 应用程序。我已经使用全局临时表编写了一个存储过程来提供帮助。

全局临时表是使用“ON COMMIT DELETE ROWS”创建的。

基本上,存储过程执行以下操作:

  • 获取一些数据。添加一个字符列。插入到全局临时表。
  • 使用一个键(在每一行中)调用另一个存储过程。
  • 存储过程返回“Y”或“N”。
  • 返回值将更新到全局临时表中的相应行。
  • 完成所有行后,返回如下:open refcursor for select * from global_temp_table

我测试存储过程。它工作正常。

然后我在我的 ASP.NET 项目中,在 Web 服务 (asmx) 中添加另一个函数。我试图参与其中,但它说:“找不到对象”。

我已经阅读了一些帖子并说更改为“ON COMMIT PRESERVE ROWS”。我不想留下数据。有没有办法解决这个问题?我已经搜索了一段时间。

[编辑] 其他队友在数据库中添加了许多其他存储过程。他们不必授予它任何权利。从 Web 服务调用时,存储过程正确执行。当然,他们的 sp 不使用全局临时表。

我已经在网上搜索过。我在那里看到过类似的帖子。在 ASP.NET 中使用全局临时表调用 Oracle 存储过程将显示相同的错误 - 找不到对象。

无论如何,我已经找到了一条路。那就是使用 WITH 子句。这是一个参考链接:https ://oracle-base.com/articles/misc/with-clause

[/编辑]

0 投票
0 回答
60 浏览

oracle - Data from cursor is not getting inserted in global temporary table

I try to call a procedure from another procedure which returns a cursor as OUT and tries to insert the cursor data into a temp table without success.

0 投票
1 回答
36 浏览

sql-server - 将其放入全局临时表时未保留表顺序

所以我有这个数据库邮件查询,这基本上是我一直使用的完全相同的格式,它总是按预期工作。但是,对于这个最新的查询,按部分的顺序没有被转移到全局临时,所以当我收到电子邮件时,顺序都是随机的。这是代码:

有趣的是,在过去的几周里,它一直运行良好,但本周当我看到这封电子邮件时,一切都乱了套,而且很奇怪。如果我单独运行查询部分,它会按预期运行和显示,但是,如果我将查询放在全局临时文件中并立即查询它,它就会出现故障。我喜欢其中的 30 个,并且按部分的顺序总是正确转移,不知道现在发生了什么。

0 投票
1 回答
149 浏览

sql - 数据类型转换导致 SSIS 包中的错误

我有一个 SSIS 包,其中包含一个使用执行 SQL 任务创建临时表的步骤。

在这个查询中,我有一个 case 语句,类似于:

我在不同的执行 SQL 任务中有一个更新语句,如下所示:

执行包时,我收到一个错误:“错误:字符串或二进制数据将被截断。”

我是否使用了错误的数据类型?

更新语句是否也需要转换/转换?

任何指导都会有所帮助。

我尝试过使用数据类型 int、numeric,并将更新语句也转换为 int。

0 投票
2 回答
333 浏览

oracle - 在事务回滚的情况下处理全局临时表中的数据

我有一个与多个实例一起运行的工作,即所有实例的代码库都是相同的,但是每个实例都在分配给它的数据集上工作,以便为应用程序实现并行性和更好的吞吐量。这些作业使用全局临时表来处理数据,因为在计算最终输出之前执行了多个复杂的操作。如果失败,事务会回滚(应该如此),但是这样我也会丢失 gtt 中的数据。

有没有办法在回滚事务的同时将 gtt 中的记录复制到另一个永久表中。我知道这听起来很奇怪,但这是我面临的一个实际问题。我需要以某种方式将数据存储在会话表中以防任何 sql 失败,同时回滚事务作为 sql 之一失败。

谢谢。

0 投票
2 回答
61 浏览

sql - 如何检索在存储过程和 SqlCommand 中创建的 #temptable 数据?

我在这里阅读了很多关于如何重用的答案,SqlCommand但没有一个是这个问题的答案。基本上我有创建一个#temptable.

像这样的东西:

在我的 .Net 中,我有一个执行存储过程的 SqlCommand。像这样的东西:

现在,当我尝试从#LoanPriorProjected表中执行选择查询时,它说

无效的对象名称“#LoanPriorProjected”。

0 投票
2 回答
682 浏览

database - oracle中的外部表和全局临时表有什么区别?

我在 oracle 中使用过外部表,它可以在包含数据的文件上创建(具有许多其他条件)。那么,全局临时表与外部表有何不同?

0 投票
0 回答
28 浏览

apache-spark-sql - 火花 SQL。大量数据保存到全局临时视图

我正在将我的数据保存到全局临时视图,以将其保存在 spark 作业之间。我想知道是否存在大量的性能问题?全球视野是否受到影响?