Sql 从SCN\u到\u时间戳(ORA\u ROWSCN)提取日期

Sql 从SCN\u到\u时间戳(ORA\u ROWSCN)提取日期,sql,oracle,Sql,Oracle,我有一个问题,我应该提取每一行的行创建日期,并将其作为大型报告的一部分。使用SCN_to_时间戳(ORA_ROWSCN),我可以查看记录创建日期,但我无法转换、提取该数据并在其他地方使用它。我收到一条错误消息,上面写着“ORA-08181:指定的号码不是有效的系统更改号码 ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1" 我写的问题如下: *insert into MEMBER_CREATION_DATE(NATIONAL

我有一个问题,我应该提取每一行的行创建日期,并将其作为大型报告的一部分。使用SCN_to_时间戳(ORA_ROWSCN),我可以查看记录创建日期,但我无法转换、提取该数据并在其他地方使用它。我收到一条错误消息,上面写着“
ORA-08181:指定的号码不是有效的系统更改号码

ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1"
我写的问题如下:

*insert into MEMBER_CREATION_DATE(NATIONAL_ID,CHECKNO,CREATION_DATE)
select NATIONAL_ID,CHECKNO,trunc(scn_to_timestamp(ora_rowscn)) from MEMBER*

您的线索是
ORA-08181:指定的号码不是有效的系统更改号码

ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1"
这意味着
SCN_TO_时间戳
无法获取
ORA_ROWSCN
,因为该记录不再是
UNDO
数据的一部分。与该系统更改号关联的时间戳SCN_TO_时间戳太旧,因此您会得到错误

您可以通过此查询检查数据库中最早的可用
SCN
编号:

select min(SCN) min_scn from sys.smon_scn_time;
正如甲骨文所说:

当生成
SCN
时,
SCN
与时间戳之间的关联由数据库在一段有限的时间内记住。如果数据库在自动撤消管理模式下运行,则此时间段是自动调整的撤消保留期的最大值,以及da中所有闪回存档的保留时间tabase,但不少于120小时。只有在数据库打开时关联才会过时。如果为参数to
SCN\u to\u TIMESTAMP
指定的
SCN
太旧,则返回错误


您的线索是
ORA-08181:指定的号码不是有效的系统更改号码

ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1"
这意味着
SCN_TO_时间戳
无法获取
ORA_ROWSCN
,因为该记录不再是
UNDO
数据的一部分。与该系统更改号关联的时间戳SCN_TO_时间戳太旧,因此您会得到错误

您可以通过此查询检查数据库中最早的可用
SCN
编号:

select min(SCN) min_scn from sys.smon_scn_time;
正如甲骨文所说:

当生成
SCN
时,
SCN
与时间戳之间的关联由数据库在一段有限的时间内记住。如果数据库在自动撤消管理模式下运行,则此时间段是自动调整的撤消保留期的最大值,以及da中所有闪回存档的保留时间tabase,但不少于120小时。只有在数据库打开时关联才会过时。如果为参数to
SCN\u to\u TIMESTAMP
指定的
SCN
太旧,则返回错误