Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Oracle中表行的创建日期和时间是多少?_Database_Oracle_Timestamp - Fatal编程技术网

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

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 你是说

昨天,我的朋友——BI专家——向我解释了一个oracle问题: 有一个oracle数据库包含大量数据,但它们不为存储为每行创建的datetime的每个表创建列。
那么在这种情况下,如何为每一行创建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.*以便我们知道时间戳属于哪些行。