Oracle 中表行的创建日期时间是多少?

2022-01-13 00:00:00 timestamp database oracle

昨天我的朋友 -BI 专家 - 向我解释了一个预言机问题:
有一个包含大量数据的 oracle 数据库,但它们不会为每个存储每行创建的日期时间的表创建列.
那么在这种情况下 他如何获得每一行的 Created datetime (timestamp) ?

Yesterday my friend -BI Specialist - explained me an oracle problem :
there's an oracle database that contain huge amount of data but they don't make column for each table that store Created datetime for each row.
So in this case How can he get Created datetime (timestamp) for each row ?

推荐答案

每一行都有自己的系统更改编号 (SCN).这准确地识别了数据库中的一个时刻.

Every row has its own System Change Number (SCN). This is identifying precisely a moment in the database.

首先找出 SCN 并基于它使用 SCN_TO_TIMESTAMP 来获取时间戳:

First find out the SCN and based on it use SCN_TO_TIMESTAMP to get the time-stamp:

SELECT 
  SCN_TO_TIMESTAMP(ora_rowscn),
  MyTable.*
FROM 
  MyTable

相关文章