Database Oracle中表行的创建日期和时间是多少?
昨天,我的朋友——BI专家——向我解释了一个oracle问题: 有一个oracle数据库包含大量数据,但它们不为存储为每行创建的datetime的每个表创建列。Database Oracle中表行的创建日期和时间是多少?,database,oracle,timestamp,Database,Oracle,Timestamp,昨天,我的朋友——BI专家——向我解释了一个oracle问题: 有一个oracle数据库包含大量数据,但它们不为存储为每行创建的datetime的每个表创建列。 那么在这种情况下,如何为每一行创建datetime时间戳呢?每一行都有自己的系统更改号SCN。这是在数据库中准确地识别一个时刻 首先找出SCN,并在此基础上使用SCN_TO_时间戳获取时间戳: SELECT SCN_TO_TIMESTAMP(ora_rowscn), MyTable.* FROM MyTable 你是说
那么在这种情况下,如何为每一行创建datetime时间戳呢?每一行都有自己的系统更改号SCN。这是在数据库中准确地识别一个时刻 首先找出SCN,并在此基础上使用SCN_TO_时间戳获取时间戳:
SELECT
SCN_TO_TIMESTAMP(ora_rowscn),
MyTable.*
FROM
MyTable
你是说在一个现有的数据库中有大量的现有数据吗?是否启用了任何类型的审核?还值得注意的是,SCN_TO_时间戳可能不适用于较旧的数据,但ORA_ROWSCN始终可用。还请注意,默认情况下,ORA_ROWSCN记录在块级别,NOROWDEPENDENCIES是默认的创建表选项。例如,请参见此伪列仅存储上次更新的时间,而不是创建时间。您可能会收到错误:提供的scn超出了有效scn的界限。可能是因为太多的数据或没有scn的旧记录造成的?不管怎样,试着在一行上运行它——最新的一行。这个答案对我很有用。但是,我建议更改为:从MyTable中选择SCN_to_TIMESTAMPora_rowscn,MyTable.*以便我们知道时间戳属于哪些行。