Oracle
如何排除閃回查詢結果集中未更改的欄位?
是否可以排除閃回查詢結果集中未更改的欄位?
考慮我有下表
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;
即使它是相同的,也會為每一行提取大量的 userpic 值。
我可以以某種方式避免這種情況,而是為未更改的值獲取 NULL 嗎?
有沒有辦法從版本化響應中排除未更改的欄位?
並不真地。
閃回使用
UNDO
. 閃回數據存檔將日誌文件的結果儲存在表中。因此,當您執行閃回查詢時,您將獲得所有數據。
常用的方法是使用
LAG
+DECODE
。但是,恐怕這會給您的LOB
專欄帶來問題。就個人而言,我會將問題交給 UI(顯示層)。