0

我在多分区上运行了一些春季批处理作业...我想使用 oracle 的全局临时表作为批处理作业的暂存表,以便暂存表仅在我的作业运行期间存在...截至目前我有物理表

我所有这些都在tomcat中运行。实现了tomcat连接池...

所以我的登台表由登台编写器填充。我可以看到数据。到目前为止一切看起来都很好

到目前为止,我的工作是单线程的。在此之后,有多个阅读器都在读取临时表中不同范围的记录。

暂存阅读器是分区的,每个分区都使用池中的一个连接。所以大多数读者无法看到临时表中的数据。可能是一两个读者,我可以假设他们使用的是相同的创建和插入表的会话

有没有办法让所有使用连接池的读者都可以使用数据?

4

1 回答 1

2

全局临时表中的数据只会在插入它的会话中可见。与使用本地临时表的其他数据库不同,该表本身将始终存在(您对“表仅在我的工作运行期间存在”的评论似乎不正确)。

如果您希望数据在会话中可见,您实际上需要将其加载到永久临时表中。还有其他方法可以跨多个会话共享数据(例如,全局上下文),但如果您要生成多个线程来处理数据,那么这些选项对于您的数据量可能并不实用。根据处理的性质,您的应用程序中可能有一个线程将数据分发给所有其他线程,因此只有协调器需要查询临时表。

于 2013-03-21T18:04:13.927 回答