是否可以在Flashback查询结果集中排除未更改的字段?
假设我有下表
create table first_table
(
id int generated as identity,
name NVARCHAR2(1024),
age smallint,
notebook nclob,
userpic clob,
salary float
)如果表有非常频繁的更新(例如,在notebook字段上),则在版本化查询之后
select ROWID, VERSIONS_OPERATION, VERSIONS_STARTSCN, VERSIONS_STARTTIME, VERSIONS_XID, id, name, age, notebook, userpic, salary
from FIRST_TABLE versions between scn 1469193 and 1482882;将为每一行提取大量的用户值,即使它是相同的。
我能以某种方式避免这种情况,而不是为未更改的值获取NULL吗?
发布于 2020-10-03 12:31:10
是否有方法将未修改的字段排除在版本化响应中?
不怎么有意思。
闪回使用在UNDO中找到的信息。闪回数据存档将来自日志文件的结果存储在一个表中。
所以,当您执行Flashback查询时,您将得到所有的数据。
常用的方法是使用LAG + DECODE。但是,对于您的LOB列来说,恐怕这会有问题。
就我个人而言,我会把问题转嫁给UI (显示层)。
https://dba.stackexchange.com/questions/276464
复制相似问题