我有一个运行更改表交换分区操作的 pl\sql 进程。
另一个会话对此表进行选择,如果选择在更改之前开始但尚未完成(选择期间更改表开始) - 选择会引发异常(对象不再存在)。
由于交换操作非常快,我想阻止对表的任何操作,然后执行更改。或者如果选择已经开始 - 延迟交换直到它完成,然后执行改变。
来自很多会话的选择,我无法控制它们。所以我不能在选择之前\之后添加任何代码 - 只能在更改表之前\之后。
有没有办法制作这样的东西???
我尝试了 rdbm_redefinition 而不是交换但总是选择失败,出于同样的原因..
谢谢。