2017-08-01 327 views
-1

是否有任何命令可以查找某個表的特定記錄何時在oracle中更新? 我想檢測在oracle中更新記錄的順序。如何在oracle中查找更新時間

+1

我不知道是否有辦法做到這一點,但如果您對此有長期需求,請將最後更新的時間戳列添加到表中。順便說一下,如果您使用了一種稱爲「軟刪除」的功能,您甚至可能不需要實際刪除該記錄。使用軟刪除時,記錄被標記爲已刪除而不需要實際刪除它。 –

+0

我已經更新了時間戳列,但是當用戶直接從數據庫更新時,此字段對我沒有幫助 –

+0

您可以在該表中創建一個虛擬列,該虛擬列的「計算」如下所示:每次插入/更新記錄時,會在其末尾添加sysdate - 因此會給您插入/更新的歷史記錄。您可以在每個日期的開始處放置諸如「ins」,「upd」之類的詞來指示操作。請記住放置一些邏輯,當它達到該列所允許的最大值時,它將截斷值...就像一個想法 – g00dy

回答

1

沒有辦法直接。也許你可以使用Oracle Flashback Technologies。所以,你可以看到舊版本的行。

默認情況下,它可以爲每個表保留900秒(15分鐘)的歷史記錄。你可以增加它並保證保持。但確保你有足夠的空間。

+0

這聽起來不像是解決桌面設計問題的好方法。 –

0

發現當一個表更新了Oracle

一個特定的記錄,您需要了解ORA_ROWSCN。對於每一行,ORA_ROWSCN都會返回該行最近一次更改的保守上限系統更改編號(SCN)。該僞列對於確定大約何時row was last updated是有用的。

瞭解更多Here