我们需要在一定时间(例如从模式1 )读取数据(例如T1),用该数据填充模式2中的一些暂存表。然后根据模式2暂存表中的当前数据从模式1的其他表(即模式1和模式2在随后的查询中连接)中的当前数据读取模式1的数据。
是否有一种无需在存储过程中的每个( AS OF )查询中使用500+来实现这一点的方法,无论模式1表出现在哪里?另外,由于大量的插入到模式2中,存储过程中也有很多提交。
业务需要在Schema 1上的所有查询中保持读取一致性,以便在存储过程执行开始时做到这一点。模式1中的所有表都启用了闪回查询。我们面临的问题是必须在一定时间内读取模式1的表,同时从模式2中的表读取当前数据。
发布于 2019-07-05 20:25:25
是的你可以使用dbms_flashback.enable_at_time。这将改变当前会话对整个数据库(所有模式)的看法。
但是请记住,您必须在不同的会话中编写更改,因此不能使用这些语句中的insert。
目前,康纳在AskTom的名声上有一段视频:https://youtu.be/lmrWmH1vMPc。
另一种选择是,如果希望具有一致但当前的视图,则可以将事务隔离设置为只读,并开始一个新事务以获得跨多个查询的读取一致性。
如果您想将读和写混合在一起,那么就需要使用“of`”作为read子查询。通过自动生成这些语句,您可以很容易地解决这个问题(更改许多语句)。
https://dba.stackexchange.com/questions/232272
复制相似问题