2017-09-16 33 views
0

我的客户端有两个名称相同的表,我将它们称为T1和T2。同义词在Oracle中运行时切换

一个同义词,TN指向T1,而一些批处理过程在T2上工作。

当批处理完成时,同义词TN被替换为指向T2表。 此开关每天来回发生一次。

我的问题是:

1)创建或替换同义词吨T2;完成切换TN指向t2而不是t1,并且对访问TN的Oracle的并发查询通过使用sql或storedproc保持进来,是否会有一个点在切换查询时可能会失败。

回答

0

Blockquote 会有一个点,在切换查询时可能会失败。 Blockquote

一般来说,没有。同义词对象的查找是在解析时完成的。在“替换”之前完成的查询继续进入T1,并在进入T2之后进行查询。 此外,使用同义词程序“应该”自动编译的时候,如果他们改变后无效

没有关于“取代”的代名词规则,只要确保你可以替换同义词

而且,有可能是更好的设计,以您的要求

+0

你可以建议一个改进的设计,可以解决这个问题,就像你建议? – Maths

+0

告诉我更多关于你做什么和批次发生了什么。 T1和T2是否将表/物化视图/ etc分开? –