在Oracle运行时中在相同模式的两个表之间切换视图

问题描述 投票:0回答:1

我的客户有两个表具有相同的列,我将它们称为T1和T2。

一个视图,V指向T1,而某些批处理在T2上运行。 T2必须被截断,然后重新加载数据。在重新加载T2之前,T1具有最新数据

批处理完成后,将视图替换为V,指向T2表。每天来回切换一次。

我的问题是:

  1. 为T2创建或替换VIEW V时;完成将V切换为指向T2而不是T1的操作,并且对Oracle的并发查询访问是通过使用SQL或存储过程不断进行的,同时修改了VIEW V,在切换查询时会有一个地方可能会失败。

  2. 是否有更好的设计,可以在表之间重新加载和读取数据,而不用在表之间进行VIEW V切换。

oracle view switching
1个回答
0
投票

我们公司也有类似的流程。这是通过使用同义词而不是视图来处理的,例如:

create or replace synonym tab_syn for user_tables; -- syn set-up for the process
select count(*) from tab_syn;                      -- run your process 
create or replace synonym tab_syn for all_tables;  -- syn next run
select count(*) from tab_syn;                      -- next run 
© www.soinside.com 2019 - 2024. All rights reserved.