我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle SCN_TO_TIMESTAMP函数的使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle SCN_TO_TIMESTAMP函数的使用

该内容来源官网:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions161.htm#BABEHBCB

 

其用法很简单

scn_to_timestamp(number),其中number指的是系统当前生产的SCN

 

文档中NOTE部分提到一个内容值得注意:

The association between an SCN and a timestamp when the SCN is generated is remembered by the database for a limited period of time. This period is the maximum of the auto-tuned undo retention period, if the database runs in the Automatic Undo Management mode, and the retention times of all flashback archives in the database, but no less than 120 hours. The time for the association to become obsolete elapses only when the database is open. An error is returned if the SCN specified for the argument to SCN_TO_TIMESTAMP is too old.

 

这里说到当SCN生成时数据库在有限的期限内保留SCN和TIMESTAMP间的关系,这个期限是由undo最大的保存时间来确定,如果数据库运行了UNDO的自动管理,并且存储的闪回归档不小于120小时,则仅当数据库开启时这个关系会过期,当通过SCN_TO_TIMESTAMP函数查询时,会返回参数太旧的错误提示。

 

同时文档中提到一个有趣的用法,Oracle提供了一个叫ORA_ROWSCN的虚拟列,当你对某些表进行查询是,通过SCN_TO_NUMBER()参数中指定该虚拟字段,其返回的结果是该表中行最后一次升级的时间。

SQL> select scn_to_timestamp(ORA_ROWSCN) from tbilllog3;
SCN_TO_TIMESTAMP(ORA_ROWSCN)
---------------------------------------------------------------------
05-JAN-15 02.25.28.000000000 PM
05-JAN-15 05.28.56.000000000 PM

其目的主要在于闪回查询,通过时间戳将数据回退到某一个时间点。例子可以看一下官网中的介绍

 

如果指定的是未来的某个SCN数,则会出现如下错误,

SQL> select scn_to_timestamp(2095591) from dual;

select scn_to_timestamp(2095591) from dual

       *

ERROR at line 1:

ORA-08181: specified number is not a valid system change number

ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle SCN_TO_TIMESTAMP函数的使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle to_char函数的使用

Oracle中的to_char函数用于将数据转换为字符类型,并可以指定转换的格式。to_char函数的语法如下:to_char(expression, format)其中,expression是要转换的数据,可以是数字、日期等;format
2023-09-22

Oracle trunc函数的使用

1. 对日期的操作2. 对数字的操作1、对日期的操作SELECT TRUNC(SYSDATE) FROM DUAL; --2019/11/29 今天的日期为2019/11/29SELE
2018-03-13

Oracle中的table()函数使用

目录一、序言二、table()函数使用步骤三、table() 具体使用实例3.1 table()结合数组 使用3.2 table()结合PIPELINED函数(这次报表使用的方式)3.3 table()结合系统包使用一、序言前段时间一直在
2023-05-12

oracle的concat函数怎么使用

Oracle的concat函数用于将两个字符串连接在一起。其语法如下:SELECT CONCAT(string1, string2) FROM table_name;例如,如果我们要将两个字段的值连接在一起并显示在查询结果中,可以这样写:
oracle的concat函数怎么使用
2024-03-11

oracle的nvl函数怎么使用

NVL函数是Oracle SQL中的一个函数,用于将NULL值替换为指定的值。其语法如下:NVL(expr1, expr2)其中,expr1是待检查的表达式,如果其值为NULL,则返回expr2,否则返回expr1的值。例如,假设有一
oracle的nvl函数怎么使用
2024-04-09

Oracle to_char函数的使用方法

Oracle中的TO_CHAR函数用于将数据转换为字符串格式。TO_CHAR函数有多个参数,以下是常用的使用方法:1. 将日期转换为字符串:TO_CHAR(date, 'format')示例:SELECT TO_CHAR(sysdate,
2023-08-17

oracle的instr函数如何使用

Oracle的INSTR函数是用于在字符串中查找子字符串的位置的函数。它的语法如下:INSTR(string, substring, position, occurrence)- string:要进行查找的字符串。- substring:要
2023-08-29

oracle的decode函数怎么使用

Oracle的DECODE函数用于根据给定的条件对一个表达式进行解码。它的基本语法如下:DECODE(expression, search1, result1, search2, result2, ..., default_result)其
2023-08-29

oracle的to_date函数如何使用

Oracle 的 TO_DATE 函数用于将一个字符串转换为日期格式。它的语法如下:TO_DATE(字符串, 格式化字符串)其中,字符串是要转换为日期的字符串,格式化字符串是指定字符串的日期格式的模式。例如,如果要将字符串 ‘2022
oracle的to_date函数如何使用
2024-04-08

oracle的todate函数怎么使用

Oracle的TO_DATE函数用于将一个字符串转换为日期数据类型。它的基本语法如下:TO_DATE(string, format)其中,string是要转换的字符串,format是字符串的格式。例如,如果要将一个字符串’2022-01-
oracle的todate函数怎么使用
2024-03-13

oracle的ifnull函数怎么使用

Oracle并没有提供直接的IFNULL函数,但是可以使用NVL函数来实现类似的功能。NVL函数的语法如下:NVL(expr1, expr2)如果expr1不为NULL,则返回expr1的值;如果expr1为NULL,则返回expr2的
oracle的ifnull函数怎么使用
2024-04-09

Oracle中的Userenv()函数怎么使用

在Oracle中,Userenv()函数可以用于获取当前会话的用户环境信息,例如用户名、用户会话ID、客户端IP地址等。以下是Userenv()函数的使用方法:获取当前会话用户名:SELECT USERENV('SESSION_USER'
2023-10-24

oracle中if函数的使用方法

oracle 中 if 函数是一种控制流函数,用于基于条件执行代码块。它的语法如下:if (condition) then -- 如果条件为真,则执行此代码块else -- 如果条件为假,则执行此代码块end if;Oracle 中 I
oracle中if函数的使用方法
2024-05-03

编程热搜

目录